{"id":15477,"date":"2024-11-18T18:20:11","date_gmt":"2024-11-18T10:20:11","guid":{"rendered":"https:\/\/fwq.ai\/blog\/?p=15477"},"modified":"2024-11-18T18:20:11","modified_gmt":"2024-11-18T10:20:11","slug":"docker-%e8%b5%84%e6%ba%90cpu%e3%80%81memory%e9%99%90%e5%88%b6%e5%ae%9e%e8%b7%b5%e7%af%87","status":"publish","type":"post","link":"https:\/\/fwq.ai\/blog\/15477\/","title":{"rendered":"Docker \u8d44\u6e90(cpu\u3001memory)\u9650\u5236\u5b9e\u8df5\u7bc7"},"content":{"rendered":"<p>\u5199\u8fd9\u7bc7\u7684\u76ee\u7684\u662f\u4e3a\u4e86\u641e\u6e05\u695a\uff0c\u5728docker\u4e2d\u7684\u4e00\u4e9b\u8bbe\u7f6e\u9879\uff0c\u5bf9\u5bb9\u5668\u8d44\u6e90\uff08cpu\u3001memory\uff09\u4ea7\u751f\u7684\u5f71\u54cd\u548c\u5bf9\u6bd4\uff0c\u4ece\u7f51\u7edc\u4e2d\u4e86\u89e3\u5230docker\u5bb9\u5668\u7684\u8d44\u6e90\u9650\u5236\u662f\u901a\u8fc7cgroup\u6765\u5b9e\u73b0\u7684\u3002cgroup\u662fcontrol group\u7684\u7b80\u79f0\uff0c\u662fLinux\u5185\u68382.6.24\u5f15\u5165\u7684\u4e00\u4e2a\u65b0\u7279\u6027 \uff0c\u7528\u6765\u9650\u5236\u3001\u5206\u79bb\u548c\u62a5\u544a\u4e00\u4e2a\u8fdb\u7a0b\u7ec4\u7684\u8d44\u6e90(CPU\u3001\u5185\u5b58\u3001\u78c1\u76d8\u8f93\u5165\u8f93\u51fa\u7b49)\u3002\u5e38\u7528\u7684ulimit\u53ea\u80fd\u57fa\u4e8e\u7528\u6237\u6216\u8005\u7528\u6237\u7ec4\u6765\u8fdb\u884c\u8d44\u6e90\u9650\u5236\uff0c\u4e0d\u80fd\u591f\u9488\u5bf9\u67d0\u4e00\u8fdb\u7a0b\u4f5c\u51fa\u8be6\u7ec6\u9650\u5236\uff0c\u7f3a\u4e4f\u7075\u6d3b\u5ea6\u3002<\/p>\n<p>&nbsp;<\/p>\n<h3>\u4e00\u3001\u5b89\u88c5 sysstat \u5de5\u5177<\/h3>\n<p>\u4e0b\u8f7d\uff1asysstat-7.0.2-3.el5.x86_64.rpm<\/p>\n<pre>rpm -ivh sysstat-7.0.2-3.el5.x86_64.rpm<\/pre>\n<h3>\u4e8c\u3001\u4f7f\u7528\u5de5\u5177 mpstat<\/h3>\n<p>\u547d\u4ee4\uff1ampstat -P ALL 3 10 \uff1a\u8868\u793a\u6bcf3\u79d2\u5bf9\u6240\u6709\u7684cpu\u91c7\u683710\u6b21.<\/p>\n<p>04\u65f654\u520627\u79d2\u00a0 CPU\u00a0\u00a0 %user\u00a0\u00a0 %nice\u00a0\u00a0\u00a0 %sys %iowait\u00a0\u00a0\u00a0 %irq\u00a0\u00a0 %soft\u00a0 %steal\u00a0\u00a0 %idle\u00a0\u00a0\u00a0 intr\/s<br \/>\n04\u65f654\u520632\u79d2\u00a0 all\u00a0\u00a0 17.77\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.05\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0 82.17\u00a0\u00a0 1113.60<br \/>\n04\u65f654\u520632\u79d2\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.20\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0 99.80\u00a0\u00a0\u00a0\u00a0\u00a0 0.00<br \/>\n04\u65f654\u520632\u79d2\u00a0\u00a0\u00a0 1\u00a0\u00a0\u00a0 0.00 \u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.62\u00a0\u00a0\u00a0\u00a0\u00a0 0.60<br \/>\n04\u65f654\u520632\u79d2\u00a0\u00a0\u00a0 2\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0 100.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00<br \/>\n04\u65f654\u520632\u79d2\u00a0\u00a0\u00a0 3\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0 100.00\u00a0\u00a0\u00a0\u00a0\u00a0 2.20<br \/>\n04\u65f654\u520632\u79d2\u00a0\u00a0\u00a0 4\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0 0.00<\/p>\n<ul>\n<li><strong>user\uff1a<\/strong>\u5728internal\u65f6\u95f4\u6bb5\u91cc\uff0c\u7528\u6237\u6001\u7684CPU\u65f6\u95f4\uff08%\uff09\uff0c\u4e0d\u5305\u542bnice\u503c\u4e3a\u8d1f\u8fdb\u7a0b\uff0c\u503c\u4e3a (usr\/total)*100\uff1b<\/li>\n<li><strong>nice\uff1a<\/strong>\u5728internal\u65f6\u95f4\u6bb5\u91cc\uff0cnice\u503c\u4e3a\u8d1f\u8fdb\u7a0b\u7684CPU\u65f6\u95f4\uff08%\uff09\uff0c\u503c\u4e3a(nice\/total)*100\uff1b<\/li>\n<li><strong>system\uff1a<\/strong>\u5728internal\u65f6\u95f4\u6bb5\u91cc\uff0c\u6838\u5fc3\u65f6\u95f4\uff08%\uff09\uff0c\u503c\u4e3a(system\/total)*100\uff1b<\/li>\n<li><strong>iowait\uff1a<\/strong>\u5728internal\u65f6\u95f4\u6bb5\u91cc\uff0c\u786c\u76d8IO\u7b49\u5f85\u65f6\u95f4\uff08%\uff09\uff0c\u503c\u4e3a(iowait\/total)*100\uff1b<\/li>\n<li><strong>irq\uff1a<\/strong>\u5728internal\u65f6\u95f4\u6bb5\u91cc\uff0c\u786c\u4e2d\u65ad\u65f6\u95f4\uff08%\uff09\uff0c\u503c\u4e3a(irq\/total)*100\uff1b<\/li>\n<li><strong>soft\uff1a<\/strong>\u5728internal\u65f6\u95f4\u6bb5\u91cc\uff0c\u8f6f\u4e2d\u65ad\u65f6\u95f4\uff08%\uff09\uff0c\u503c\u4e3a(softirq\/total)*100\uff1b<\/li>\n<li><strong>idle\uff1a<\/strong>\u5728internal\u65f6\u95f4\u6bb5\u91cc\uff0cCPU\u9664\u53bb\u7b49\u5f85\u78c1\u76d8IO\u64cd\u4f5c\u5916\u7684\u56e0\u4e3a\u4efb\u4f55\u539f\u56e0\u800c\u7a7a\u95f2\u7684\u65f6\u95f4\u95f2\u7f6e\u65f6\u95f4\uff08%\uff09\uff0c\u503c\u4e3a(idle\/total)*100\uff1b<\/li>\n<li><strong>intr\/s\uff1a<\/strong>\u5728internal\u65f6\u95f4\u6bb5\u91cc\uff0c\u6bcf\u79d2CPU\u63a5\u6536\u7684\u4e2d\u65ad\u7684\u6b21\u6570\uff0c\u503c\u4e3a(intr\/total)*100\uff1b<\/li>\n<\/ul>\n<h3>\u4e09\u3001Docker\u4e2d\u5173\u4e8e\u5bb9\u5668cpu\u7684\u8bbe\u7f6e\u9879<\/h3>\n<ul>\n<li><strong>\u2013cpuset-cpus\uff1a\u6307\u5b9a\u5141\u8bb8\u5bb9\u5668\u4f7f\u7528\u7684CPU\u5e8f\u53f7,\u4ece0\u5f00\u59cb\uff0c\u9ed8\u8ba4\u4f7f\u7528\u4e3b\u673a\u7684\u6240\u6709CPU<\/strong><\/li>\n<\/ul>\n<pre>--cpuset-cpus=0-2 \/\/ \u5141\u8bb8\u4f7f\u75280,1,2\u53f7cpu\r\n--cpuset-cpus=0-1,3 \/\/ \u5141\u8bb8\u4f7f\u75280,1,3\u53f7cpu<\/pre>\n<p>\u4f8b\u5982\uff1a<\/p>\n<pre>docker run -it --rm --cpuset-cpus=0-1,3 agileek\/cpuset-test\r\n# agileek\/cpuset-test\u7ed9\u51fa\u4e86\u4e00\u79cd\u7528\u4e8e\u6d4b\u8bd5CPU\u7684image\uff0c\u529f\u80fd\u5c31\u662f\u5c06\u6307\u5b9a\u7684CPU\u8d44\u6e90\u7528\u6ee1<\/pre>\n<p>\u8fd0\u884c\u7ed3\u679c\uff1a<\/p>\n<pre># mpstat -P ALL 2 1000\r\n\r\n05\u65f608\u520640\u79d2\u00a0 CPU\u00a0\u00a0 %user\u00a0\u00a0 %nice\u00a0\u00a0\u00a0 %sys %iowait\u00a0\u00a0\u00a0 %irq\u00a0\u00a0 %soft\u00a0 %steal\u00a0\u00a0 %idle\u00a0\u00a0\u00a0 intr\/s\r\n05\u65f608\u520643\u79d2\u00a0 all\u00a0\u00a0 70.16\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 1.06\u00a0\u00a0\u00a0 0.00\u00a0\u00a0 28.78\u00a0\u00a0 4443.03\r\n05\u65f608\u520643\u79d2\u00a0\u00a0\u00a0 0\u00a0\u00a0 98.36\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 1.64\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\r\n05\u65f608\u520643\u79d2\u00a0\u00a0\u00a0 1\u00a0\u00a0 99.20\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.80\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.82\r\n05\u65f608\u520643\u79d2\u00a0\u00a0\u00a0 2\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0 100.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00\r\n05\u65f608\u520643\u79d2\u00a0\u00a0\u00a0 3\u00a0\u00a0 97.98\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 2.02\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 1.64\r\n05\u65f608\u520643\u79d2\u00a0\u00a0\u00a0 4\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0\u00a0\u00a0 0.00<\/pre>\n<ul>\n<li><strong>\u2013cpu-shares \u662f\u76f8\u5bf9\u6743\u91cd\uff0c \u8bbe\u7f6e\u4e3a\u4e00\u4e2a\u6b63\u6574\u6570\uff0c\u4ee3\u8868\u6240\u5206\u914d\u7684\u76f8\u5bf9CPU\u8d44\u6e90\u6bd4\uff0c\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u8fd9\u79cd\u60c5\u51b5\u53ea\u53d1\u751f\u5728CPU\u8d44\u6e90\u7d27\u5f20\u7684\u60c5\u51b5\u4e0b\u3002<\/strong><\/li>\n<\/ul>\n<p>\u542f\u52a82\u4e2a\u5bb9\u5668\uff1a<\/p>\n<pre>docker run -it --rm --cpu-shares=10 --cpuset-cpus=0 agileek\/cpuset-test\r\ndocker run -it --rm --cpu-shares=20 --cpuset-cpus=0 agileek\/cpuset-test<\/pre>\n<p>\u5206\u8868\u67e5\u770b2\u4e2a\u5bb9\u5668\u7684top\u4fe1\u606f:<\/p>\n<pre># docker top 4067dfb90eeb \r\nUID\u00a0\u00a0\u00a0\u00a0 PID \u00a0 \u00a0\u00a0 PPID\u00a0\u00a0\u00a0\u00a0 C\u00a0\u00a0\u00a0\u00a0\u00a0 STIME\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TTY\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TIME\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 CMD\r\nroot\u00a0\u00a0\u00a0\u00a0 5428\u00a0\u00a0\u00a0 5412\u00a0\u00a0\u00a0\u00a0<strong> 66<\/strong>\u00a0\u00a0\u00a0\u00a0 05:23\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 pts\/2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 00:00:32\u00a0\u00a0\u00a0\u00a0 \/cpuburn\r\n\r\n# docker top 11d8f3076db1\r\nUID\u00a0\u00a0\u00a0\u00a0 PID\u00a0\u00a0\u00a0\u00a0\u00a0 PPID\u00a0\u00a0\u00a0\u00a0 C\u00a0\u00a0\u00a0\u00a0\u00a0 STIME\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TTY\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 TIME\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 CMD\r\nroot\u00a0\u00a0\u00a0\u00a0 5330\u00a0\u00a0\u00a0 5314\u00a0\u00a0\u00a0\u00a0 <strong>34<\/strong> \u00a0\u00a0\u00a0 05:22\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 pts\/4\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 00:00:59\u00a0\u00a0\u00a0\u00a0 \/cpuburn\r\n\u6ce8\uff1a\u5bb9\u5668\u8fd0\u884c\u7684\u65f6\u95f4\u8d8a\u957f\uff0c\u6bd4\u4f8b\u8d8a\u63a5\u8fd1.<\/pre>\n<p>\u9ed8\u8ba4\u60c5\u51b5\u4e0b\u6240\u6709\u5bb9\u5668\u7684share\uff08\u7b80\u5355\u7406\u89e3\u6210\u662f\u6743\u91cd\u5427\uff09\u662f\u76f8\u540c\u7684\uff0c\u4e5f\u5c31\u662f\u6240\u6709\u5bb9\u5668\u6709\u76f8\u540c\u7684\u6743\u91cd\uff0c\u5728\u6240\u6709\u5bb9\u5668\u4e00\u8d77\u7ade\u4e89\u8d44\u6e90\u65f6\uff0c\u6700\u7ec8\u5f97\u5230\u7684\u8d44\u6e90\u662f\u76f8\u540c\u7684\u3002\u8fd9\u4e2ashare\u662f\u4e00\u4e2a\u76f8\u5bf9\u7684\u503c\uff0c\u90a3\u4e48\u8fd9\u4e2a\u503c\u7684\u610f\u4e49\u5c31\u4e0d\u80fd\u5355\u7eaf\u7684\u901a\u8fc7\u4e00\u4e2a\u5bb9\u5668\u7684share\u503c\u6765\u770b\uff0c\u800c\u662f\u591a\u4e2a\u5728\u4e00\u8d77\u5bf9\u6bd4\uff0c\u6bd4\u5982A\u548cB\u4e24\u4e2a\u5bb9\u5668\uff0cA\u914d\u7f6e\u7684\u662f1024\uff0cB\u914d\u7f6e\u7684\u662f512\uff0c\u90a3\u4e48A\u6700\u5927\u53ef\u4ee5\u4f7f\u7528\u7684CPU\u8d44\u6e90\u662fB\u7684\u4e24\u500d\u3002\u8fd8\u6709\u4e00\u70b9\u8981\u6ce8\u610f\u7684\u662f\u8fd9\u79cd\u914d\u7f6e\u662f\u6709\u5f39\u6027\u7684\uff0c\u5982\u679cA\u5bb9\u5668\u4e00\u76f4\u95f2\u7740\uff0c\u90a3B\u5bb9\u5668\u662f\u53ef\u4ee5\u4f7f\u7528\u7a7a\u95f2\u8d44\u6e90\u7684\u3002<\/p>\n<ul>\n<li><strong>\u00a0\u2013cpus\u00a0\u5bb9\u5668CPU\u5360\u7528\u4e3b\u673a\u7684CPU\u7684\u6bd4\u4f8b\uff0c\u5360\u7528\u7684\u6bd4\u4f8b\u5173\u7cfb\u6682\u65f6\u672a\u627e\u5230\u76f8\u5173\u7684\u8d44\u6599\u3002<\/strong><\/li>\n<\/ul>\n<p>\u4f8b\u5982\u00a0\u2013cpus=1 \uff0c\u5bbf\u4e3b\u673acpu\u4e2a\u6570\u4e3a4\uff0c\u5360\u7528\u6bd4\u4f8b\u5e76\u975e1\/4 .\u73b0\u5728\u4f7f\u7528\u2013cpus\u80fd\u591f\u786e\u8ba42\u70b9<\/p>\n<ol>\n<li>\u2013cpus=2\u6bd4\u2013cpus=1\uff0c\u5360\u7528\u6bd4\u4f8b\u8981\u5927\u3002<\/li>\n<li>\u5728 docker inspect 3ef363848eb8 | grep Cpu \u4e2d\u6709\u4e2a\u00a0<span class=\"s1\">Nano<\/span><span class=\"s2\">Cpus \u4f1a\u968f\u5176\u89c4\u5f8b\u6027\u53d8\u5316\u3002<\/span><\/li>\n<\/ol>\n<ul>\n<li><strong>\u2013cpu-period \u548c \u2013cpu-quota<\/strong><\/li>\n<\/ul>\n<p>\u8fd9\u4e24\u4e2a\u8bbe\u7f6e\u9879\u662f\u6210\u5bf9\u51fa\u73b0\u7684\uff0c\u5728\u7406\u89e3\u8fd92\u4e2a\u6982\u5ff5\u4e4b\u524d\u9700\u8981\u6e05\u695a\uff0clinux\u7cfb\u7edf\u4e2d\u8fdb\u7a0b\u7684CPU\u5360\u6bd4\u662f\u5982\u4f55\u8ba1\u7b97\u7684\uff0c\u7b80\u5355\u53ef\u4ee5\u7406\u89e3\u4e3a\uff1a\u5728\u5355\u4f4d\u7684\u65f6\u95f4\u5185\uff08\u4e5f\u79f0\u5237\u65b0\u65f6\u95f4\uff09\uff0c\u8fdb\u7a0b\u5360\u7528CPU\u7684\u65f6\u95f4\u6bd4\uff0c\u8fd9\u91cc\u53ea\u662f\u5355\u4e2aCPU\u7684\u6bd4\u503c\uff08\u8fdb\u7a0bCPU\u4f7f\u7528\u6bd4\u4f8b\uff09\uff0c\u5982\u679c\u662f\u591a\u6838CPU\uff0c\u5373 \u8fdb\u7a0bCPU\u4f7f\u7528\u5360\u6bd4\/CPU\u6838\u6570=\u7cfb\u7edfCPU\u5360\u6bd4\u3002<\/p>\n<pre><strong>cpu-period\uff1a\u6307\u5237\u65b0\u65f6\u95f4,\u5355\u4f4d\u662f\u5fae\u79d2\uff08us\uff09\uff0c\u9ed8\u8ba4\u503c\u662f0.1\u79d2\uff0c\u5373100,000us\r\ncpu-quota\uff1a\u5bb9\u5668\u5360\u7528\u65f6\u95f4,\u5355\u4f4d\u662f\u5fae\u79d2\uff08us\uff09,\u9ed8\u8ba4\u662f-1\uff0c\u5373\u4e0d\u9650\u5236\r\n\r\n\uff03\u6ce8\u610f\uff1a\u53ea\u662f\u5355\u4e2aCPU\u7684\u767e\u5206\u6bd4\uff08\u8fdb\u7a0bCPU\u4f7f\u7528\u6bd4\u4f8b\uff09.\u7cfb\u7edfcpu\u4f7f\u7528\u6bd4=\u8fdb\u7a0bCPU\u4f7f\u7528\u6bd4\u4f8b\/\u6838\u6570<\/strong><\/pre>\n<p>\u901a\u8fc7\u4f8b\u5b50\u8bf4\u660e\uff08\u672c\u4eba\u4f7f\u75284\u6838CPU\uff09\uff0c\u4f8b\u5b501:<\/p>\n<pre>docker run -it --rm --cpu-quota=50000 --name=test agileek\/cpuset-test\r\n\/\/ \u5bb9\u5668cpu\u5360\u752850%\uff0c\u56e0\u4e3a\u672c\u4eba\u7528\u76844\u6838CPU\uff0ctop\u4e2d\u8fdb\u7a0bCPU\u6bd4\u4f8b50%\uff0c\u7cfb\u7edfCPU\u4f7f\u7528\u6bd4\u4f8b12.5%<\/pre>\n<pre># top\r\nTasks: 128 total,\u00a0\u00a0 1 running, 127 sleeping,\u00a0\u00a0 0 stopped,\u00a0\u00a0 0 zombie\r\n%Cpu(s): <strong>10.8 us<\/strong>,\u00a0 0.1 sy,\u00a0 0.0 ni, 89.0 id,\u00a0 0.0 wa,\u00a0 0.0 hi,\u00a0 0.1 si,\u00a0 0.0 st\r\nKiB Mem :\u00a0 1016488 total,\u00a0\u00a0 663352 free,\u00a0\u00a0 119692 used,\u00a0\u00a0 233444 buff\/cache\r\nKiB Swap:\u00a0 1048572 total,\u00a0 1048572 free,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0 used.\u00a0\u00a0 736284 avail Mem\r\n\r\nPID USER\u00a0\u00a0\u00a0\u00a0\u00a0 PR\u00a0 NI\u00a0\u00a0\u00a0 VIRT\u00a0\u00a0\u00a0 RES\u00a0\u00a0\u00a0 SHR S\u00a0 %CPU %MEM\u00a0\u00a0\u00a0\u00a0 TIME+ COMMAND\r\n22734 root\u00a0\u00a0\u00a0\u00a0\u00a0 20\u00a0\u00a0 0\u00a0\u00a0 36732\u00a0\u00a0\u00a0 972\u00a0\u00a0\u00a0 584 S\u00a0 <strong>49.5<\/strong>\u00a0 0.1\u00a0\u00a0 0:12.02 cpuburn<\/pre>\n<p>\u4f8b\u5b502\uff1a<\/p>\n<pre>docker run -it --rm --cpu-quota=300000 --name=test agileek\/cpuset-test\r\n\/\/ \u8fdb\u7a0bcpu\u5360\u6bd4 300%\uff0c\u7cfb\u7edfcpu\u5360\u6bd475%<\/pre>\n<pre># top\r\nTasks: 129 total,\u00a0\u00a0 2 running, 127 sleeping,\u00a0\u00a0 0 stopped,\u00a0\u00a0 0 zombie\r\n%Cpu(s): 55.7 us,\u00a0 0.0 sy,\u00a0 0.0 ni, 43.2 id,\u00a0 0.0 wa,\u00a0 0.0 hi,\u00a0 1.1 si,\u00a0 0.0 st\r\nKiB Mem :\u00a0 1016488 total,\u00a0\u00a0 663336 free,\u00a0\u00a0 119708 used,\u00a0\u00a0 233444 buff\/cache\r\nKiB Swap:\u00a0 1048572 total,\u00a0 1048572 free,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0 used.\u00a0\u00a0 736264 avail Mem \r\n\r\nPID USER\u00a0\u00a0\u00a0\u00a0\u00a0 PR\u00a0 NI\u00a0\u00a0\u00a0 VIRT\u00a0\u00a0\u00a0 RES\u00a0\u00a0\u00a0 SHR S\u00a0 %CPU %MEM\u00a0\u00a0\u00a0\u00a0 TIME+ COMMAND\r\n22828 root\u00a0\u00a0\u00a0\u00a0\u00a0 20\u00a0\u00a0 0\u00a0\u00a0 36732\u00a0\u00a0\u00a0 972\u00a0\u00a0\u00a0 584 S 300.7\u00a0 0.1\u00a0\u00a0 2:31.44 cpuburn<\/pre>\n<p>\u4f8b\u5b503\uff1a<\/p>\n<pre>docker run -it --rm --cpu-quota=500000 --name=test agileek\/cpuset-test\r\n\/\/ \u8fdb\u7a0bcpu\u5360\u6bd4 400%\uff0c\u7cfb\u7edfcpu\u5360\u6bd4100%\r\n\u6ce8\uff1a\u6b64\u65f6\u8d85\u8fc74\u6838cpu\u7684\u6700\u5927\u5360\u6bd4,\u6240\u4ee5\u4f7f\u7528\u6700\u5927\u5360\u6bd4<\/pre>\n<pre># top\r\nTasks: 127 total,\u00a0\u00a0 3 running, 124 sleeping,\u00a0\u00a0 0 stopped,\u00a0\u00a0 0 zombie\r\n%Cpu(s): 97.4 us,\u00a0 0.1 sy,\u00a0 0.0 ni,\u00a0 0.0 id,\u00a0 0.0 wa,\u00a0 0.0 hi,\u00a0 2.5 si,\u00a0 0.0 st\r\nKiB Mem :\u00a0 1016488 total,\u00a0\u00a0 662932 free,\u00a0\u00a0 120116 used,\u00a0\u00a0 233440 buff\/cache\r\nKiB Swap:\u00a0 1048572 total,\u00a0 1048572 free,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0 used.\u00a0\u00a0 735884 avail Mem \r\n\r\nPID USER\u00a0\u00a0\u00a0\u00a0\u00a0 PR\u00a0 NI\u00a0\u00a0\u00a0 VIRT\u00a0\u00a0\u00a0 RES\u00a0\u00a0\u00a0 SHR S\u00a0 %CPU %MEM\u00a0\u00a0\u00a0\u00a0 TIME+ COMMAND\r\n22915 root\u00a0\u00a0\u00a0\u00a0\u00a0 20\u00a0\u00a0 0\u00a0\u00a0 36732\u00a0\u00a0\u00a0 712\u00a0\u00a0\u00a0 396 R 398.0\u00a0 0.1\u00a0 19:41.62 cpuburn<\/pre>\n<p>\u4f8b\u5b504\uff1a<\/p>\n<pre># docker run -it --rm --cpu-quota=500000 --cpu-period=1000000 --name=test \r\nagileek\/cpuset-test\r\n\/\/ \u5bb9\u5668\u8fdb\u7a0b\u5360\u6bd4 50%\uff0c\u7cfb\u7edfcpu\u5360\u6bd412.5<\/pre>\n<pre>#top\r\nTasks: 125 total,\u00a0\u00a0 1 running, 124 sleeping,\u00a0\u00a0 0 stopped,\u00a0\u00a0 0 zombie\r\n%Cpu(s): 10.0 us,\u00a0 0.0 sy,\u00a0 0.0 ni, 89.9 id,\u00a0 0.0 wa,\u00a0 0.0 hi,\u00a0 0.1 si,\u00a0 0.0 st\r\nKiB Mem :\u00a0 1016488 total,\u00a0\u00a0 665960 free,\u00a0\u00a0 117144 used,\u00a0\u00a0 233384 buff\/cache\r\nKiB Swap:\u00a0 1048572 total,\u00a0 1048572 free,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0 used.\u00a0\u00a0 738964 avail Mem \r\n\r\nPID USER\u00a0\u00a0\u00a0\u00a0\u00a0 PR\u00a0 NI\u00a0\u00a0\u00a0 VIRT\u00a0\u00a0\u00a0 RES\u00a0\u00a0\u00a0 SHR S\u00a0 %CPU %MEM\u00a0\u00a0\u00a0\u00a0 TIME+ COMMAND\r\n23006 root\u00a0\u00a0\u00a0\u00a0\u00a0 20\u00a0\u00a0 0\u00a0\u00a0 36732\u00a0\u00a0\u00a0 972\u00a0\u00a0\u00a0 584 S\u00a0 50.0\u00a0 0.1\u00a0\u00a0 0:33.50 cpuburn<\/pre>\n<p>\u4f8b\u5b505:<\/p>\n<pre>docker run -it --rm --cpu-quota=3000000 --cpu-period=1000000 --cpuset-cpus=0-1 \r\n --name=test\u00a0 agileek\/cpuset-test\r\n# \u8fdb\u7a0bcpu\u5360\u6bd4 200%(\u56e0\u9650\u5236\u4f7f\u75280\u548c1\u597dCPU\uff0c\u6700\u5927\u503c\u662f300%)\uff0c\u7cfb\u7edfcpu\u5360\u6bd450%<\/pre>\n<pre>#top\r\nTasks: 124 total,\u00a0\u00a0 1 running, 123 sleeping,\u00a0\u00a0 0 stopped,\u00a0\u00a0 0 zombie\r\n%Cpu(s): 43.3 us,\u00a0 0.1 sy,\u00a0 0.0 ni, 56.3 id,\u00a0 0.0 wa,\u00a0 0.0 hi,\u00a0 0.3 si,\u00a0 0.0 st\r\nKiB Mem :\u00a0 1016488 total,\u00a0\u00a0 665464 free,\u00a0\u00a0 117560 used,\u00a0\u00a0 233464 buff\/cache\r\nKiB Swap:\u00a0 1048572 total,\u00a0 1048572 free,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0 used.\u00a0\u00a0 738496 avail Mem \r\n\r\nPID USER\u00a0\u00a0\u00a0\u00a0\u00a0 PR\u00a0 NI\u00a0\u00a0\u00a0 VIRT\u00a0\u00a0\u00a0 RES\u00a0\u00a0\u00a0 SHR S\u00a0 %CPU %MEM\u00a0\u00a0\u00a0\u00a0 TIME+ COMMAND \r\n23143 root\u00a0\u00a0\u00a0\u00a0\u00a0 20\u00a0\u00a0 0\u00a0\u00a0 36732\u00a0\u00a0\u00a0 712\u00a0\u00a0\u00a0 396 R 199.3\u00a0 0.1\u00a0\u00a0 4:14.25 cpuburn<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u5199\u8fd9\u7bc7\u7684\u76ee\u7684\u662f\u4e3a\u4e86\u641e\u6e05\u695a\uff0c\u5728docker\u4e2d\u7684\u4e00\u4e9b\u8bbe\u7f6e\u9879\uff0c\u5bf9\u5bb9\u5668\u8d44\u6e90\uff08cpu\u3001memory\uff09\u4ea7\u751f\u7684\u5f71\u54cd\u548c\u5bf9\u6bd4\uff0c\u4ece\u7f51\u7edc\u4e2d\u4e86\u89e3\u5230docker\u5bb9\u5668\u7684\u8d44\u6e90\u9650\u5236\u662f\u901a\u8fc7cgroup\u6765\u5b9e\u73b0\u7684\u3002cgroup\u662fcontrol group\u7684\u7b80\u79f0\uff0c\u662fLinux\u5185\u68382.6.24\u5f15\u5165\u7684\u4e00\u4e2a\u65b0\u7279\u6027 \uff0c\u7528\u6765\u9650\u5236\u3001\u5206\u79bb\u548c\u62a5\u544a\u4e00\u4e2a\u8fdb\u7a0b\u7ec4\u7684\u8d44\u6e90(CPU\u3001\u5185\u5b58\u3001\u78c1\u76d8\u8f93\u5165\u8f93\u51fa\u7b49)\u3002\u5e38\u7528\u7684ulimit\u53ea\u80fd\u57fa\u4e8e\u7528\u6237\u6216\u8005\u7528\u6237\u7ec4\u6765\u8fdb\u884c\u8d44\u6e90\u9650\u5236\uff0c\u4e0d\u80fd\u591f\u9488\u5bf9\u67d0\u4e00\u8fdb\u7a0b\u4f5c\u51fa\u8be6\u7ec6\u9650\u5236\uff0c\u7f3a\u4e4f\u7075\u6d3b\u5ea6\u3002 &nbsp; \u4e00\u3001\u5b89\u88c5 sysstat \u5de5\u5177 \u4e0b\u8f7d\uff1asysstat-7.0.2-3.el5.x86_64.rpm rpm -ivh sysstat-7.0.2-3.el5.x86_64.rpm \u4e8c\u3001\u4f7f\u7528\u5de5\u5177 mpstat \u547d\u4ee4\uff1ampstat -P ALL 3 10 \uff1a\u8868\u793a\u6bcf3\u79d2\u5bf9\u6240\u6709\u7684cpu\u91c7\u683710\u6b21. 04\u65f654\u520627\u79d2\u00a0 CPU\u00a0\u00a0 %user\u00a0\u00a0 %nice\u00a0\u00a0\u00a0 %sys %iowait\u00a0\u00a0\u00a0 %irq\u00a0\u00a0 %soft\u00a0 %steal\u00a0\u00a0 %idle\u00a0\u00a0\u00a0 intr\/s 04\u65f654\u520632\u79d2\u00a0 all\u00a0\u00a0 17.77\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.05\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0 82.17\u00a0\u00a0 1113.60 04\u65f654\u520632\u79d2\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.20\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0\u00a0 0.00\u00a0\u00a0 99.80\u00a0\u00a0\u00a0\u00a0\u00a0 0.00 04\u65f654\u520632\u79d2\u00a0\u00a0\u00a0 1\u00a0\u00a0\u00a0 0.00 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[],"class_list":["post-15477","post","type-post","status-publish","format-standard","hentry","category-docker"],"_links":{"self":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/15477","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/comments?post=15477"}],"version-history":[{"count":1,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/15477\/revisions"}],"predecessor-version":[{"id":15478,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/15477\/revisions\/15478"}],"wp:attachment":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/media?parent=15477"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/categories?post=15477"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/tags?post=15477"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}