docker-monitor-injector工具算法的示例分析
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,这篇文章给大家分享的是有关docker-monitor-injector工具算法的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。工具介绍 docker-monito
千家信息网最后更新 2025年12月04日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安全错误
数据库的锁怎样保障安全
数据库技术制作
漳平手机软件开发
知道数据库技术题库
打印服务器文件占资源
静安区现代化网络技术批发价格
比特币网络安全模式怎么调
软件开发专科有选科要求吗
河北省服务器dns 云空间
建立居民数据库
租mc服务器
免备案vps服务器
竹溪服务软件开发学习
im app和服务器源码
宁河软件开发特点
四姑娘山天气预报软件开发
软件开发要一直学下去吗
想学习网络安全推荐书籍
制图软件开发
高康瑞朗网络技术有限公司
移动网络安全保卫
电子邮件无法安全连接到服务器
巴西原料数据库
如何增强中国互联网科技水平
提高网络安全意识的英语作文
高中网络安全主题班会 博客
网络安全加固是什么
dns 免费 服务器
海康服务器提示c盘空间不足
软件开发价格如何评估
网络安全相关影视