Docker容器cpu利用率问题

这篇具有很好参考价值的文章主要介绍了Docker容器cpu利用率问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.top原理

top 是读的/proc/stat文件 比如cat /proc/PID/stat 进程的总Cpu时间processCpuTime = utime + stime + cutime + cstime,该值包括其所有线程的cpu时间 某一进程Cpu使用率的计算 计算方法:       1  采样两个足够短的时间间隔的cpu快照与进程快照,            

a每一个cpu快照均为(user、nice、system、idle、iowait、irq、softirq、stealstolen、guest)的9元组;            

b每一个进程快照均为 (utime、stime、cutime、cstime)的4元组;

     2 分别根据a、b计算出两个时刻的总的cpu时间与进程的cpu时间,分别记作:totalCpuTime1、totalCpuTime2、processCpuTime1、processCpuTime2      

    3 计算该进程的cpu使用率pcpu = 100*( processCpuTime2 – processCpuTime1) / (totalCpuTime2 –  totalCpuTime1) (按100%计算,如果是多核情况下还需乘以cpu的个数);

2.docker stats原理:

Cpu数据: docker daemon会记录这次读取/sys/fs/cgroup/cpuacct/docker/[containerId]/cpuacct.usage的值,作为cpu_total_usage;

并记录了上一次读取的该值为pre_cpu_total_usage;

读取/proc/stat中cpu field value,并进行累加,得到system_usage;

并记录上一次的值为pre_system_usage;

读取/sys/fs/cgroup/cpuacct/docker/[containerId]/cpuacct.usage_percpu中的记录,组成数组per_cpu_usage_array;

docker stats计算Cpu Percent的算法: cpu_delta = cpu_total_usage - pre_cpu_total_usage; system_delta = system_usage - pre_system_usage; CPU % = ((cpu_delta / system_delta) * length(per_cpu_usage_array) ) * 100.0

代码:/docker/docker/api/client/stats.go#141 /docker/docker/daemon/daemon.go#1474

3.lxcfs原理

容器启动时,通过-v 将宿主机上 LXCFS 的挂载点 /var/lib/lxc/lxcfs/proc/ 挂载到容器内部的虚拟 /proc 文件系统目录下。 此时在容器内部 /proc 目录下可以看到,一些列 proc 文件,包括 meminfo, uptime, swaps, stat, diskstats, cpuinfo 等。 具体使用参数如下: -v /var/lib/lxc/lxcfs/proc/cpuinfo:/proc/cpuinfo 此时如果用户在容器内读取 /proc/cpuinfo信息,实际上就读取到了 /var/lib/lxcfs/proc/cpuinfo文件, fuse文件系统将读取 cpuinfo的进程 pid传给 lxcfs,lxcfs通过该 pid找到所属的 cgroup分组,并读取该分组中的 /cgroup/cpu信息并返回。

4.总结:

  a) 经过大量测试物理机top和docker里的进程CPU使用率是完全一致的,也分别对比了容器和物理机的/proc/PID/stat和/proc/stat文件的内容,  数据几乎差不多(因为stat文件时刻在变化),而top对cpu的使用率计算方式就是通过这两个文件拿到的数据值。

  b)得出结论,可以在容器内使用top查看进程的cpu使用率。文章来源地址https://www.toymoban.com/news/detail-425584.html

到了这里,关于Docker容器cpu利用率问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python实现监控指定进程的CPU利用率、内存占用

            因为需要一直关注被测软件的CPU利用率和内存占用,人工记录十分麻烦,所以想做一个应用程序来代替手工记录。 思路: 1.弹窗,输入进程号 2.获取进程对象 3.日志保存在一个csv文件中,文件命名方式为:进程名+Process+进程号 4.文件第一行写入进程名,第二行表

    2023年04月12日
    浏览(33)
  • 关于路由器CPU利用率过高的解决办法

    第一步, show process cpu 如显示IP input process is using a lot of CPU resources,检查以下情况: 一、Fast switching 在大流量的外出接口上是否被disabled.可以用 show interfaces switching 命令察看接口流量.然后在接口上重新 Re-enable fast switching .记住 fast switching是配置在output 接口. 二、Fast switching

    2024年02月06日
    浏览(44)
  • 【Linux运维】shell脚本检查服务器内存和CPU利用率

    在管理服务器时候写了一个 shell脚本,在服务上实现每天凌晨3点查系统的指定文件夹下的容量大小,如果超过10G就要删除3天前的内容,还要时刻查询内存和cpu利用率,如果超过80%就要提示用户出现过载 将以上代码保存为一个.sh文件,然后通过crontab在每天凌晨3点运行即可:

    2024年02月09日
    浏览(48)
  • 【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码

    题目 D 题 圈养湖羊的空间利用率 规模化的圈养养殖场通常根据牲畜的性别和生长阶段分群饲养,适应不同种类、不同阶段的牲畜对空间的不同要求,以保障牲畜安全和健康;与此同时,也要尽量减少空间闲置所造成的资源浪费。在实际运营中,还需要考虑市场上饲料价格和

    2024年02月09日
    浏览(37)
  • 如何评估FPGA资源利用率?

    如何评估FPGA资源利用率? 随着FPGA在各种应用场景中的广泛应用,评估FPGA资源的利用率显得越来越重要。效率低下的FPGA资源分配方法可能导致性能严重下降,而过度利用资源则可能导致设计不稳定。因此,在设计FPGA电路时,必须评估所需的资源,并确保其最大限度地利用。

    2024年02月21日
    浏览(33)
  • Linux查看磁盘利用率(iostat)

    使用 iostat 命令可以查看磁盘的负载情况。iostat命令可以显示磁盘的I/O统计信息,包括磁盘的读写速度、I/O请求队列长度、CPU利用率等。 参数 Device:磁盘分区的名称。 rrqm/s:每秒钟合并的读请求。 wrqm/s:每秒钟合并的写请求。 r/s:每秒钟的读取次数。 w/s:每秒钟的写入次

    2024年02月16日
    浏览(34)
  • 数学建模圈养湖羊的空间利用率

    问题 :规模化的圈养养殖场通常根据牲畜的性别和生长阶段分群饲养,适应不同种类、不同阶段的牲畜对空间的不同要求,以保障牲畜安全和健康;与此同时,也要尽量减少空间闲置所造成的资源浪费。在实际运营中,还需要考虑市场上饲料价格和产品销售价格的波动以及气

    2024年02月09日
    浏览(32)
  • PyTorch GPU利用率为0%(很低)

    一、确保Pytorch与TorchVision是CUDA(GPU)版本 参考链接:【Xiang哥避坑指南】YOLOV5只在CPU跑不在GPU跑的问题。 在Python终端下操作: 1、Pytorch 2、TorchVision 输出的结果是 +cu 就是 CUDA(GPU) 输出的结果是 +cpu 就是 CPU 二、确保Pytorch与TorchVision以及CUDA ToolKit的版本一致 在Python终端下操作 t

    2024年01月17日
    浏览(33)
  • 数学建模之圈养湖羊的空间利用率

    D题最新最全思路已出,欢迎后台私信咨询~~~~ 规模化的圈养养殖场通常根据牲畜的性别和生长阶段分群饲养,适应不同种类、不同阶段的牲畜对空间的不同要求,以保障牲畜安全和健康;与此同时,也要尽量减少空间闲置所造成的资源浪费。在实际运营中,还需要考虑市场上

    2024年02月09日
    浏览(38)
  • 【已证实】训练神经网络时,GPU利用率低而显存占用率高的思考

    已经证实了我的猜想“从batch_size角度考虑”的正确性。详细解释在后面更新。 GPU利用率低而显存占用率高的思考 问题描述 :在深度学习training中,可以看到cpu利用率很高、内存占用率很高、显存占用率很                           高,但GPU利用率很低,train比较耗时。

    2024年02月03日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包