在我的生产环境中,我有一个8核,大约40GB + RAM服务器。我看到我的docker容器正在使用更多的cpu周期,并使其他独立部署的服务变慢。
Ex:我们有一个nifi服务在一个容器中运行,使用cpu大约300%(变化一个)和其他容器,如数据库,kafka一些。
这里是我找到的docker container inspect
"Isolation": "",
"CpuShares": 0,
"Memory": 0,
"NanoCpus": 0,
"CgroupParent": "",
"BlkioWeight": 0,
"BlkioWeightDevice": null,
"BlkioDeviceReadBps": null,
"BlkioDeviceWriteBps": null,
"BlkioDeviceReadIOps": null,
"BlkioDeviceWriteIOps": null,
"CpuPeriod": 0,
"CpuQuota": 0,
"CpuRealtimePeriod": 0,
"CpuRealtimeRuntime": 0,
"CpusetCpus": "",
"CpusetMems": "",
"Devices": null,
"DeviceCgroupRules": null,
"DiskQuota": 0,
"KernelMemory": 0,
"MemoryReservation": 0,
"MemorySwap": 0,
"MemorySwappiness": null,
"OomKillDisable": false,
"PidsLimit": 0,
"Ulimits": null,
"CpuCount": 0,
"CpuPercent": 0,
"IOMaximumIOps": 0,
"IOMaximumBandwidth": 0
这是最常用的
$top
top - 01:08:47 up 15 days, 3:23, 1 user, load average: 5.73, 5.58, 5.44
Tasks: 320 total, 4 running, 314 sleeping, 0 stopped, 2 zombie
%Cpu0 : 15.9 us, 6.2 sy, 0.0 ni, 77.2 id, 0.0 wa, 0.0 hi, 0.7 si, 0.0 st
%Cpu1 : 26.8 us, 3.1 sy, 0.0 ni, 69.4 id, 0.0 wa, 0.0 hi, 0.7 si, 0.0 st
%Cpu2 : 8.9 us, 5.2 sy, 0.0 ni, 84.9 id, 0.0 wa, 0.0 hi, 1.0 si, 0.0 st
%Cpu3 : 13.8 us, 6.0 sy, 0.0 ni, 78.8 id, 0.0 wa, 0.0 hi, 1.4 si, 0.0 st
%Cpu4 : 34.4 us, 3.8 sy, 0.0 ni, 61.1 id, 0.3 wa, 0.0 hi, 0.3 si, 0.0 st
%Cpu5 : 81.3 us, 4.9 sy, 0.0 ni, 11.3 id, 0.0 wa, 0.0 hi, 2.5 si, 0.0 st
%Cpu6 : 64.8 us, 2.5 sy, 0.0 ni, 31.7 id, 0.0 wa, 0.0 hi, 1.1 si, 0.0 st
%Cpu7 : 77.4 us, 5.0 sy, 0.0 ni, 16.5 id, 0.0 wa, 0.0 hi, 1.1 si, 0.0 st
KiB Mem: 57803616 total, 51826940 used, 5976676 free, 1047628 buffers
KiB Swap: 16773116 total, 77040 used, 16696076 free. 19288708 cached Mem
一般情况下,我们服务直接在服务器上运行,比如Web应用程序需要一些CPU和内存。 docker容器会完全使用cpu循环使其他服务变慢吗?
如果是,那么通过不使系统负载过重来使两个服务正确使用资源的最佳过程是什么?
提前致谢!!!