docker-monitor-injector工具算法的示例分析
发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,这篇文章给大家分享的是有关docker-monitor-injector工具算法的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。工具介绍 docker-monito
千家信息网最后更新 2025年02月05日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安全错误
数据库的锁怎样保障安全
上海加工网络技术现价
多媒体数据库概述
手机远程服务器数据库
青岛财鱼网络技术
天睿网络技术有限公司怎么样
高配版pc可以做服务器吗
安徽现代软件开发品牌
网络安全窃密剪辑视频
物联网网络安全研究院
bms软件开发工程师薪酬
长宁区游戏软件开发系统
计算机网络技术笔记软件手机
儿童网络安全宣传内容
数据库技术人员能干多少岁
网络安全的5个方面
红帽网络安全认证
怎么在txt中追加数据库
杭州官方软件开发哪个好
稳定的零信任架构网络安全
日本没有网络安全信息法
数据库查询sql语句的底层原理
服务器端口号四位的安全吗
数据采集软件开发工具
太仓宥莱软件开发有限公司
蓝牙属于无线网络技术标准吗
深圳市道町互联网科技公司
邯郸电商软件开发
点赞数量最多的服务器
静态域名服务器
取其中一条数据库