docker-monitor-injector工具算法的示例分析
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家分享的是有关docker-monitor-injector工具算法的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。工具介绍 docker-monito
千家信息网最后更新 2026年11月01日docker-monitor-injector工具算法的示例分析
这篇文章给大家分享的是有关docker-monitor-injector工具算法的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
工具介绍 docker-monitor-injector是携程开源的一个修正docker容器内监控数据的工具,通过劫持open,fopen等linux库函数,重算/proc/meminfo,/proc/stat等度量指标,使得容器内free,top等系统工具能正确统计容器性能指标。下面将对其进行源码分析,并整理出各个数据的监控修正算法。
算法(伪码)
/proc/uptime
reaperage: time(NULL) - lstat("/proc/1").st_ctimeidletime: (reaperage - cpuacct.usage)/1000000000/proc/meminfo
MemTotal: memory.limit_in_bytesmemfree: memlimit - memusageswaptotal: memswlimit > 0 ? memswlimit - memlimit : 0SwapFree: (memswlimit > 0 && memswusage > 0) ? (memswlimit - memlimit) - (memswusage - memusage):0cached: memory.stat.total_cacheBuffers: 0SwapCached: 0Slab: 0
/proc/stat
a.proc_stat_by_sharesuser_sum: cpuacct.stat.usersystem_sum: cpuacct.stat.systemnice_sum: (_self*cpu.shares/1024)/sysconf(_SC_NPROCESSORS_ONLN)idle_sum: (_self*cpu.shares/1024)/sysconf(_SC_NPROCESSORS_ONLN)iowait_sum: (_self*cpu.shares/1024)/sysconf(_SC_NPROCESSORS_ONLN)irq_sum: (_self*cpu.shares/1024)/sysconf(_SC_NPROCESSORS_ONLN)softirq_sum:(_self*cpu.shares/1024)/sysconf(_SC_NPROCESSORS_ONLN)steal_sum: (_self*cpu.shares/1024)/sysconf(_SC_NPROCESSORS_ONLN)guest_sum: (_self*cpu.shares/1024)/sysconf(_SC_NPROCESSORS_ONLN) 任一cpu stat值算法如下:x = x_sum/sysconf(_SC_NPROCESSORS_ONLN),x_sum为上述任一指标
b.flush_proc_stat_by_cpusets
btime: stat("/proc/1").st_ctimeuser_sum, nice_sum, system_sum, idle_sum, iowait_sum, irq_sum, softirq_sum, steal_sum, guest_sum = 容器所拥有cpu id在/proc/stat中对应值之和。/proc/cpuinfo
若容器绑定cpu,只输出绑定cpu id对应cpu info信息否则,全部输出
/sys/devices/system/cpu/online
//经过验证,该算法应该是有缺陷的,不作分析。
/proc/diskstats
read = blkio.io_serviced:major:minor:Readwrite = blkio.io_serviced:major:minor:Writeread_merged = blkio.io_merged:major:minor:Readwrite_merged=blkio.io_merged:major:minor:Writeread_sectors= blkio.io_service_bytes:major:minor:Read/512write_sectors= blkio.io_service_bytes:major:minor:Write)/512rd_svctm = blkio.io_service_time:major:minor:Read/1000000rd_wait = get_blkio_io_value(blkio.io_wait_time:major:minor:Read)/1000000read_ticks = rd_svctm + rd_waitwr_svctm = blkio.io_service_time:major:minor:Write/1000000wr_wait = blkio.io_wait_time:major:minor:Write/1000000;write_ticks = wr_svctm + wr_waittot_ticks = blkio.io_service_time:major:minor:Total/1000000 ...if (read || write || read_merged || write_merged || read_sectors || write_sectors || read_ticks || write_ticks) {snprintf(lbuf, 256, "%u %u %s %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu\n",major, minor, dev_name, read, read_merged, read_sectors, read_ticks,write, write_merged, write_sectors, write_ticks, ios_pgr, tot_ticks, rq_ticks);感谢各位的阅读!关于"docker-monitor-injector工具算法的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
算法
工具
容器
分析
指标
示例
内容
数据
更多
篇文章
任一
监控
输出
不错
实用
之和
信息
函数
将对
性能
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
小米移动互联网科技园
工业互联网科技新基建
互联网科技金融
深圳互联网科技公司
期待互联网科技
紫鲸互联网科技
齐家互联网科技有限公司
互联网科技有限公司 翻译
互联网科技博主是什么意思
互联网经济与金融科技
科技互联网大厂
彤创互联网科技有限公司
西安小鹰速贷互联网科技有限公司
互联网科技圈年度人物
电子商务与互联网科技的关系
互联网科技包装股份有限公司上市
江苏互联网科技小贷
上海乐五互联网科技有限公司
互联网高科技行业有哪些企业
科技和互联网行业的特点
互联网佳科技有限公司
为想互联网科技怎么样
互联网最新的科技有限公司
浩特互联网科技
深圳前海聚择互联网科技有限公司
互联网与医疗科技
深圳市优智互联网科技有限公司
高科技互联网套路
陕西彩京云互联网科技有限公司
宁波允成互联网科技有限公司