docker - 了解 docker 容器 cpu 的使用
问题描述
docker stats
说明cpu使用率很高。但是top
命令输出显示没有使用 88.3% 的 cpu。容器内部是一个 java 服务 httpthrift 服务。
docker stats :
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
8a0488xxxx5 540.9% 41.99 GiB / 44 GiB 95.43% 0 B / 0 B 0 B / 35.2 MB 286
最高输出:
top - 07:56:58 up 2 days, 22:29, 0 users, load average: 2.88, 3.01, 3.05
Tasks: 13 total, 1 running, 12 sleeping, 0 stopped, 0 zombie
%Cpu(s): 8.2 us, 2.7 sy, 0.0 ni, 88.3 id, 0.0 wa, 0.0 hi, 0.9 si, 0.0 st
KiB Mem: 65959920 total, 47983628 used, 17976292 free, 357632 buffers
KiB Swap: 7999484 total, 0 used, 7999484 free. 2788868 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
8823 root 20 0 58.950g 0.041t 21080 S 540.9 66.5 16716:32 java
如何减少 cpu 使用率并使其低于 100%?
解决方案
根据顶级手册页:
在 Solaris 模式下运行时(“I”关闭),任务的 CPU 使用率将除以 CPU 总数。发出此命令后,您将被告知此切换的新状态。
因此,在交互模式下使用 top 时按 键I
,您将切换到 Solaris 模式,CPU 使用率将除以 CPU(或内核)总数。
PS:此选项并非在所有版本的 top 上都可用。
推荐阅读
- r - 带有跳过和选择选项的 Fread 会得到奇怪的结果
- python - Python Pickle.load() 未正确加载
- sqlite - Xamarin 表单中的 SQLite 数据库搜索
- c++ - deque 中元素的随机访问如何给出恒定的时间复杂度?
- python - Python数据框中列子集的分组和平均值
- php - 使用 php 和 sql 使用 file_get_contents() 和 str_replace 从 sql 数据库中获取的 html 和数据设计
- javascript - 在javascript中使用onclick获取输入标签中每个值的值
- assembly - 无法在 x86 程序集中获取 argv[0]
- python - 合并包含相同值的数组
- serial-port - 二进制串口读取有时会弄乱数据