{"id":81575,"date":"2026-07-25T02:59:18","date_gmt":"2026-07-24T18:59:18","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/81575.html"},"modified":"2026-07-25T02:59:18","modified_gmt":"2026-07-24T18:59:18","slug":"%e6%b7%b1%e5%85%a5%e7%90%86%e8%a7%a3linux-cgroup-v2%ef%bc%9acpu%e4%b8%8e%e5%86%85%e5%ad%98%e8%b5%84%e6%ba%90%e9%9a%94%e7%a6%bb%e6%9c%ba%e5%88%b6%e5%8f%8a%e7%94%9f%e4%ba%a7%e7%8e%af%e5%a2%83%e8%b0%83","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/81575.html","title":{"rendered":"\u6df1\u5165\u7406\u89e3Linux Cgroup v2\uff1aCPU\u4e0e\u5185\u5b58\u8d44\u6e90\u9694\u79bb\u673a\u5236\u53ca\u751f\u4ea7\u73af\u5883\u8c03\u4f18\u6307\u5357"},"content":{"rendered":"<h2>\u6df1\u5165\u7406\u89e3Linux Cgroup v2&#xff1a;CPU\u4e0e\u5185\u5b58\u8d44\u6e90\u9694\u79bb\u673a\u5236\u53ca\u751f\u4ea7\u73af\u5883\u8c03\u4f18\u6307\u5357<\/h2>\n<h3>\u4e00\u3001Cgroup v2\u7684\u8bbe\u8ba1\u6f14\u8fdb\u4e0e\u6838\u5fc3\u6982\u5ff5<\/h3>\n<p>Control Group(Cgroup)\u662fLinux\u5185\u6838\u7684\u8d44\u6e90\u9694\u79bb\u4e0e\u63a7\u5236\u673a\u5236\u3002\u5b83\u9650\u5236\u3001\u7edf\u8ba1\u3001\u9694\u79bb\u8fdb\u7a0b\u7ec4\u7684\u8d44\u6e90\u4f7f\u7528\u3002Cgroup v1\u57282008\u5e74\u5408\u5e76\u5165\u5185\u6838\u3002v2\u57282016\u5e74\u53d1\u5e03\u3002v1\u5b58\u5728\u67b6\u6784\u6027\u95ee\u9898\u3002v2\u4ece\u6839\u672c\u4e0a\u91cd\u65b0\u8bbe\u8ba1\u4e86\u63a7\u5236\u5668\u6a21\u578b\u3002<\/p>\n<p>Cgroup v1\u7684\u6700\u5927\u95ee\u9898\u662f\u63a7\u5236\u5668\u72ec\u7acb\u7ba1\u7406\u3002\u6bcf\u4e2a\u5b50\u7cfb\u7edf(cpu\u3001memory\u3001blkio)\u72ec\u7acb\u7684\u5c42\u7ea7\u7ed3\u6784\u3002\u540c\u4e00\u4e2a\u8fdb\u7a0b\u7ec4\u5728\u4e0d\u540c\u63a7\u5236\u5668\u4e2d\u53ef\u80fd\u4f4d\u4e8e\u4e0d\u540c\u4f4d\u7f6e\u3002\u7ba1\u7406\u590d\u6742\u4e14\u5bb9\u6613\u51fa\u9519\u3002v2\u91c7\u7528\u7edf\u4e00\u5c42\u7ea7\u6a21\u578b\u3002\u6240\u6709\u63a7\u5236\u5668\u5728\u540c\u4e00\u68f5\u6811\u4e0a\u8fd0\u4f5c\u3002\u6bcf\u4e2acgroup\u8282\u70b9\u53ef\u4ee5\u540c\u65f6\u7ba1\u7406\u591a\u79cd\u8d44\u6e90\u3002<\/p>\n<p>Cgroup v2\u5f15\u5165\u4e86\u4e09\u4e2a\u6838\u5fc3\u8bbe\u8ba1\u6539\u826f\u3002\u7b2c\u4e00&#xff0c;\u65e0\u5185\u90e8\u8fdb\u7a0b\u89c4\u5219\u3002\u53ea\u6709\u53f6\u5b50cgroup\u53ef\u4ee5\u5305\u542b\u8fdb\u7a0b\u3002\u975e\u53f6\u5b50\u8282\u70b9\u4ec5\u7528\u4e8e\u8d44\u6e90\u5212\u5206\u3002\u8fd9\u6d88\u9664\u4e86v1\u4e2d\u8fdb\u7a0b\u4e0e\u5b50cgroup\u7684\u5f52\u5c5e\u6b67\u4e49\u3002\u7b2c\u4e8c&#xff0c;\u7edf\u4e00\u5c42\u7ea7\u3002\u6240\u6709\u63a7\u5236\u5668\u6302\u8f7d\u5728\u540c\u4e00\u6587\u4ef6\u7cfb\u7edf\u4e0a\u3002\u901a\u8fc7cgroup.controllers\u67e5\u770b\u5f53\u524d\u8282\u70b9\u542f\u7528\u7684\u63a7\u5236\u5668\u3002\u901a\u8fc7cgroup.subtree_control\u63a7\u5236\u5b50\u8282\u70b9\u53ef\u7528\u7684\u63a7\u5236\u5668\u3002\u7b2c\u4e09&#xff0c;\u57fa\u4e8e\u538b\u529b\u7684\u8d44\u6e90\u7ba1\u7406\u3002memory\u63a7\u5236\u5668\u5f15\u5165PSI(Pressure Stall Information)\u3002\u5728\u5185\u5b58\u538b\u529b\u5347\u9ad8\u65f6\u4e3b\u52a8\u8282\u5236\u8d44\u6e90\u5206\u914d\u3002<\/p>\n<p>graph TD<br \/>\n    A[Cgroup v2 \u7edf\u4e00\u5c42\u7ea7\u6839] &#8211;&gt; B[system.slice]<br \/>\n    A &#8211;&gt; C[user.slice]<br \/>\n    A &#8211;&gt; D[machine.slice]<br \/>\n    B &#8211;&gt; E[sshd.service]<br \/>\n    B &#8211;&gt; F[cron.service]<br \/>\n    C &#8211;&gt; G[user-1000.slice]<br \/>\n    C &#8211;&gt; H[user-1001.slice]<br \/>\n    D &#8211;&gt; I[kubepods.slice]<br \/>\n    I &#8211;&gt; J[burstable]<br \/>\n    I &#8211;&gt; K[guaranteed]<br \/>\n    J &#8211;&gt; L[pod-abc123]<br \/>\n    J &#8211;&gt; M[pod-def456]<br \/>\n    K &#8211;&gt; N[pod-ghi789]<\/p>\n<h3>\u4e8c\u3001CPU\u8d44\u6e90\u9694\u79bb\u673a\u5236\u6df1\u5ea6\u89e3\u6790<\/h3>\n<p>Cgroup v2\u7684CPU\u63a7\u5236\u5668\u63d0\u4f9b\u4e24\u79cd\u8d44\u6e90\u5206\u914d\u6a21\u578b\u3002\u7b2c\u4e00\u79cd\u662f\u6743\u91cd\u6a21\u578b(cpu.weight)\u3002\u7b2c\u4e8c\u79cd\u662f\u5e26\u5bbd\u9650\u5236\u6a21\u578b(cpu.max)\u3002<\/p>\n<p>\u6743\u91cd\u6a21\u578b\u5b9a\u4e49cgroup\u7684\u76f8\u5bf9CPU\u4efd\u989d\u3002\u9ed8\u8ba4\u6743\u91cd\u4e3a100\u3002\u53d6\u503c\u8303\u56f41\u523010000\u3002\u5f53CPU\u8d44\u6e90\u5145\u8db3\u65f6\u6743\u91cd\u4e0d\u8d77\u4f5c\u7528\u3002\u6240\u6709cgroup\u53ef\u4ee5\u8d85\u8fc7\u6743\u91cd\u4f7f\u7528CPU\u3002\u5f53CPU\u8d44\u6e90\u7ade\u4e89\u65f6\u3002\u6309\u6743\u91cd\u6bd4\u4f8b\u5206\u914dCPU\u65f6\u95f4\u3002\u8ba1\u7b97\u516c\u5f0f\u4e3a&#xff1a;\u67d0cgroup\u7684CPU\u4efd\u989d &#061; \u8be5cgroup\u6743\u91cd \/ \u6240\u6709\u6d3b\u8dc3cgroup\u6743\u91cd\u4e4b\u548c\u3002<\/p>\n<p>\u5e26\u5bbd\u9650\u5236\u6a21\u578b\u901a\u8fc7cpu.max\u6587\u4ef6\u63a7\u5236\u3002\u683c\u5f0f\u4e3a$MAX $PERIOD\u3002$MAX\u662f\u5468\u671f\u5185\u5141\u8bb8\u7684CPU\u5fae\u79d2\u6570\u3002$PERIOD\u662f\u8c03\u5ea6\u5468\u671f&#xff0c;\u9ed8\u8ba4100000\u5fae\u79d2(100ms)\u3002\u4f8b\u5982cpu.max &#061; &#034;50000 100000&#034;\u8868\u793a\u6bcf100ms\u5141\u8bb8\u4f7f\u752850ms CPU\u3002\u5373\u9650\u5236CPU\u4f7f\u7528\u7387\u4e3a50%\u3002\u8bbe\u7f6e\u4e3a&#034;max 100000&#034;\u8868\u793a\u4e0d\u9650\u5236\u3002<\/p>\n<p>CPU\u63a7\u5236\u5668\u8fd8\u63d0\u4f9bcpu.stat\u7edf\u8ba1\u6587\u4ef6\u3002\u5305\u542b\u4ee5\u4e0b\u5173\u952e\u6307\u6807\u3002usage_usec&#xff1a;\u7d2f\u8ba1CPU\u4f7f\u7528\u65f6\u95f4\u3002user_usec\u548csystem_usec\u5206\u522b\u8bb0\u5f55\u7528\u6237\u6001\u548c\u5185\u6838\u6001\u65f6\u95f4\u3002nr_periods\u548cnr_throttled\u8bb0\u5f55\u5e26\u5bbd\u9650\u5236\u7684\u5468\u671f\u6570\u548c\u88ab\u9650\u5236\u6b21\u6570\u3002throttled_usec\u8bb0\u5f55\u88ab\u9650\u5236\u7684\u603b\u65f6\u95f4\u3002\u8fd9\u4e9b\u6307\u6807\u662f\u6027\u80fd\u5206\u6790\u548c\u8d44\u6e90\u89c4\u5212\u7684\u91cd\u8981\u4f9d\u636e\u3002<\/p>\n<p>#!\/bin\/bash<br \/>\n# \u521b\u5efa\u548c\u914d\u7f6eCgroup v2\u7684CPU\u9650\u5236<\/p>\n<p>CGROUP_NAME&#061;&#034;myapp&#034;<br \/>\nCGROUP_PATH&#061;&#034;\/sys\/fs\/cgroup\/$CGROUP_NAME&#034;<\/p>\n<p># 1. \u521b\u5efacgroup\u76ee\u5f55<br \/>\necho &#034;\u521b\u5efacgroup: $CGROUP_PATH&#034;<br \/>\nif ! mkdir -p &#034;$CGROUP_PATH&#034; 2&gt;\/dev\/null; then<br \/>\n    echo &#034;[\u9519\u8bef] \u521b\u5efacgroup\u76ee\u5f55\u5931\u8d25&#xff0c;\u53ef\u80fd\u662f\u6743\u9650\u4e0d\u8db3&#034;<br \/>\n    exit 1<br \/>\nfi<\/p>\n<p># 2. \u542f\u7528CPU\u63a7\u5236\u5668&#xff08;\u9700\u8981\u4ece\u7236\u8282\u70b9\u5411\u4e0b\u4f20\u9012\u63a7\u5236\u5668&#xff09;<br \/>\n# \u5728\u6839cgroup\u4e2d\u542f\u7528cpu\u63a7\u5236\u5668<br \/>\necho &#034;&#043;cpu&#034; &gt; \/sys\/fs\/cgroup\/cgroup.subtree_control 2&gt;\/dev\/null || \\\\<br \/>\n    echo &#034;[\u63d0\u793a] \u7236\u8282\u70b9\u5df2\u542f\u7528cpu\u63a7\u5236\u5668\u6216\u9700\u8981root\u6743\u9650&#034;<\/p>\n<p># 3. \u8bbe\u7f6eCPU\u6743\u91cd&#xff08;\u9ed8\u8ba4100&#xff0c;\u8868\u793a\u4e0e\u63a7\u5236\u7ec4\u5171\u4eabCPU&#xff09;<br \/>\necho &#034;100&#034; &gt; &#034;$CGROUP_PATH\/cpu.weight&#034;<br \/>\necho &#034;CPU\u6743\u91cd\u5df2\u8bbe\u7f6e\u4e3a: $(cat $CGROUP_PATH\/cpu.weight)&#034;<\/p>\n<p># 4. \u8bbe\u7f6eCPU\u5e26\u5bbd\u9650\u5236&#xff08;\u6bcf100ms\u5468\u671f\u5185\u6700\u591a\u4f7f\u752850ms &#061; 50% CPU&#xff09;<br \/>\necho &#034;50000 100000&#034; &gt; &#034;$CGROUP_PATH\/cpu.max&#034;<br \/>\necho &#034;CPU\u5e26\u5bbd\u9650\u5236\u5df2\u8bbe\u7f6e\u4e3a: $(cat $CGROUP_PATH\/cpu.max)&#034;<\/p>\n<p># 5. \u5c06\u8fdb\u7a0b\u52a0\u5165cgroup<br \/>\nAPP_PID&#061;$1<br \/>\nif [ -z &#034;$APP_PID&#034; ]; then<br \/>\n    echo &#034;\u7528\u6cd5: $0 &lt;\u8fdb\u7a0bPID&gt;&#034;<br \/>\n    exit 1<br \/>\nfi<\/p>\n<p># \u9a8c\u8bc1PID\u662f\u5426\u5b58\u5728<br \/>\nif ! kill -0 &#034;$APP_PID&#034; 2&gt;\/dev\/null; then<br \/>\n    echo &#034;[\u9519\u8bef] \u8fdb\u7a0bPID ${APP_PID} \u4e0d\u5b58\u5728&#034;<br \/>\n    exit 1<br \/>\nfi<\/p>\n<p>echo &#034;$APP_PID&#034; &gt; &#034;$CGROUP_PATH\/cgroup.procs&#034;<br \/>\necho &#034;\u8fdb\u7a0b ${APP_PID} \u5df2\u79fb\u5165cgroup&#034;<\/p>\n<p># 6. \u67e5\u770bCPU\u4f7f\u7528\u7edf\u8ba1<br \/>\necho &#034;&#061;&#061;&#061; CPU\u4f7f\u7528\u7edf\u8ba1 &#061;&#061;&#061;&#034;<br \/>\nif [ -f &#034;$CGROUP_PATH\/cpu.stat&#034; ]; then<br \/>\n    cat &#034;$CGROUP_PATH\/cpu.stat&#034; | while read -r key value; do<br \/>\n        case &#034;$key&#034; in<br \/>\n            usage_usec)<br \/>\n                echo &#034;\u7d2f\u8ba1CPU\u4f7f\u7528: $((value \/ 1000000)) \u79d2&#034;<br \/>\n                ;;<br \/>\n            nr_throttled)<br \/>\n                echo &#034;\u88ab\u9650\u5236\u6b21\u6570: $value&#034;<br \/>\n                ;;<br \/>\n            throttled_usec)<br \/>\n                echo &#034;\u88ab\u9650\u5236\u603b\u65f6\u95f4: $((value \/ 1000)) \u6beb\u79d2&#034;<br \/>\n                ;;<br \/>\n        esac<br \/>\n    done<br \/>\nfi<\/p>\n<h3>\u4e09\u3001\u5185\u5b58\u8d44\u6e90\u9694\u79bb\u4e0eOOM\u63a7\u5236\u673a\u5236<\/h3>\n<p>Cgroup v2\u7684memory\u63a7\u5236\u5668\u63d0\u4f9b\u5185\u5b58\u4f7f\u7528\u4e0a\u9650\u3001OOM\u884c\u4e3a\u63a7\u5236\u3001\u4ee5\u53ca\u5185\u5b58\u538b\u529b\u611f\u77e5\u529f\u80fd\u3002<\/p>\n<p>memory.max\u8bbe\u7f6e\u786c\u6027\u5185\u5b58\u4e0a\u9650\u3002\u5f53cgroup\u5185\u5b58\u4f7f\u7528\u8d85\u8fc7\u8be5\u503c\u65f6\u3002\u89e6\u53d1OOM Killer\u56de\u6536\u5185\u5b58\u3002\u8bbe\u7f6e\u4e3amax\u8868\u793a\u4e0d\u9650\u5236\u3002memory.high\u8bbe\u7f6e\u8f6f\u6027\u5185\u5b58\u4e0a\u9650\u3002\u8d85\u8fc7\u65f6\u89e6\u53d1\u5185\u5b58\u56de\u6536\u4f46\u4e0d\u76f4\u63a5OOM\u3002\u8fdb\u7a0b\u8fd0\u884c\u53d8\u6162\u3002\u76f4\u5230\u5185\u5b58\u964d\u5230high\u503c\u4ee5\u4e0b\u3002memory.low\u662f\u5185\u5b58\u4fdd\u62a4\u4e0b\u9650\u3002\u5728\u7cfb\u7edf\u5185\u5b58\u538b\u529b\u4e0b\u3002\u5c3d\u529b\u4fdd\u8bc1cgroup\u7684low\u503c\u4e0d\u88ab\u56de\u6536\u3002<\/p>\n<p>memory.current\u663e\u793a\u5f53\u524d\u5185\u5b58\u7528\u91cf\u3002memory.stat\u63d0\u4f9b\u8be6\u7ec6\u7684\u5185\u5b58\u7edf\u8ba1\u3002\u5305\u62ecanon(\u533f\u540d\u9875)\u3001file(\u6587\u4ef6\u9875)\u3001slab(\u5185\u6838slab\u5206\u914d)\u3001kernel_stack(\u5185\u6838\u6808)\u7b49\u3002\u5206\u6790\u8fd9\u4e9b\u6307\u6807\u53ef\u4ee5\u5b9a\u4f4d\u5185\u5b58\u6d88\u8017\u7684\u6839\u6e90\u3002\u4f8b\u5982file\u503c\u8fc7\u9ad8\u8bf4\u660e\u6709\u5927\u91cf\u9875\u7f13\u5b58\u3002\u53ef\u80fd\u662fIO\u5bc6\u96c6\u578b\u5e94\u7528\u3002<\/p>\n<p>OOM\u63a7\u5236\u901a\u8fc7memory.oom.group\u548cmemory.events\u5b9e\u73b0\u3002memory.oom.group\u4e3a1\u65f6\u3002cgroup\u5185\u4efb\u4e00\u8fdb\u7a0b\u89e6\u53d1OOM\u3002\u6574\u4e2acgroup\u88ab\u6574\u4f53Kill\u3002\u8fd9\u5bf9\u4e8e\u5bb9\u5668\u573a\u666f\u7279\u522b\u91cd\u8981\u3002\u907f\u514dPod\u90e8\u5206\u8fdb\u7a0b\u88abKill\u5bfc\u81f4\u72b6\u6001\u4e0d\u4e00\u81f4\u3002memory.events\u8bb0\u5f55\u4e86OOM\u4e8b\u4ef6\u3001OOM Kill\u6b21\u6570\u7b49\u3002<\/p>\n<p>\u5185\u5b58\u538b\u529b\u7684\u7cbe\u7ec6\u5316\u63a7\u5236\u4f9d\u8d56PSI\u3002memory.pressure\u6587\u4ef6\u66b4\u9732\u5185\u5b58\u538b\u529b\u6307\u6807\u3002\u5206\u4e3asome\u548cfull\u4e24\u4e2a\u7ea7\u522b\u3002some\u8868\u793a\u90e8\u5206\u4efb\u52a1\u53d7\u5185\u5b58\u538b\u529b\u5f71\u54cd\u3002full\u8868\u793a\u6240\u6709\u4efb\u52a1\u90fd\u53d7\u5f71\u54cd\u3002\u76d1\u63a7PSI\u6307\u6807\u53ef\u4ee5\u5b9e\u73b0\u5185\u5b58\u538b\u529b\u7684\u63d0\u524d\u9884\u8b66\u3002\u5728OOM\u53d1\u751f\u4e4b\u524d\u91c7\u53d6\u5e72\u9884\u63aa\u65bd\u3002<\/p>\n<h3>\u56db\u3001\u751f\u4ea7\u73af\u5883\u8c03\u4f18\u5b9e\u6218\u6307\u5357<\/h3>\n<p>\u57fa\u4e8eCgroup v2\u7684\u751f\u4ea7\u73af\u5883\u8c03\u4f18\u9700\u8981\u517c\u987e\u8d44\u6e90\u5229\u7528\u7387\u548c\u5e94\u7528\u7a33\u5b9a\u6027\u3002<\/p>\n<p>CPU\u8c03\u4f18\u7b56\u7565\u3002\u5bf9\u4e8eKubernetes\u96c6\u7fa4\u3002Pod\u7684CPU request\u6620\u5c04\u4e3acpu.weight\u3002CPU limit\u6620\u5c04\u4e3acpu.max\u7684\u5e26\u5bbd\u9650\u5236\u3002Guaranteed QoS\u7684Pod\u5e94\u8be5\u8bbe\u7f6ecpu.max &#061; &#034;max&#034;\u52a0\u5408\u7406\u7684cpu.weight\u3002\u907f\u514d\u65e0\u610f\u4e49\u7684CPU\u9650\u6d41\u3002Burstable QoS\u7684Pod\u4f7f\u7528cpu.max\u9650\u5236\u5cf0\u503c\u3002\u9632\u6b62\u7a81\u53d1\u6d41\u91cf\u5f71\u54cd\u540c\u8282\u70b9\u5176\u4ed6Pod\u3002\u5173\u952e\u6838\u5fc3\u670d\u52a1\u8bbe\u7f6e\u8f83\u9ad8\u7684cpu.weight(\u5982500-1000)\u3002\u786e\u4fddCPU\u7ade\u4e89\u65f6\u4f18\u5148\u83b7\u5f97\u8d44\u6e90\u3002<\/p>\n<p>\u5185\u5b58\u8c03\u4f18\u7b56\u7565\u3002Guaranteed Pod\u8bbe\u7f6ememory.max &#061; memory.request\u3002\u786e\u4fdd\u5185\u5b58\u4e0d\u4f1a\u88ab\u7cfb\u7edf\u56de\u6536\u3002Burstable Pod\u7684memory.max &#061; limit\u3002memory.high\u5efa\u8bae\u8bbe\u4e3alimit\u768480%-90%\u3002\u5728\u8fbe\u5230\u786c\u9650\u5236\u4e4b\u524d\u89e6\u53d1\u6e29\u548c\u7684\u5185\u5b58\u56de\u6536\u3002\u5173\u952ePod\u8bbe\u7f6ememory.low\u4fdd\u62a4\u6700\u4f4e\u5185\u5b58\u9700\u6c42\u3002\u5373\u4f7f\u7cfb\u7edf\u6574\u4f53\u5185\u5b58\u7d27\u5f20\u3002\u4e5f\u4fdd\u7559\u5173\u952e\u670d\u52a1\u7684\u57fa\u7840\u8fd0\u884c\u5185\u5b58\u3002<\/p>\n<p>\u5e38\u89c1\u95ee\u9898\u4e0e\u89e3\u51b3\u3002\u95ee\u9898\u4e00&#xff1a;\u5bb9\u5668\u9891\u7e41OOM Kill\u4f46\u5b9e\u9645\u6709\u53ef\u7528\u5185\u5b58\u3002\u539f\u56e0\u662fmemory.high\u89e6\u53d1\u540e\u3002\u5185\u5b58\u56de\u6536\u6548\u7387\u4f4e\u3002\u8c03\u6574\u65b9\u6848&#xff1a;\u964d\u4f4ememory.high\u9608\u503c\u3002\u7ed9\u5185\u5b58\u56de\u6536\u7559\u8db3\u7f13\u51b2\u3002\u95ee\u9898\u4e8c&#xff1a;CPU\u9650\u5236\u5bfc\u81f4\u5ef6\u8fdf\u6296\u52a8\u3002\u539f\u56e0\u662fcpu.max\u89e6\u53d1\u7684throttling\u6253\u65ad\u4efb\u52a1\u6267\u884c\u3002\u8c03\u6574\u65b9\u6848&#xff1a;\u5ef6\u957fperiod\u5230200ms\u3002\u7ed9\u4e88\u66f4\u957f\u7684\u6267\u884c\u7a97\u53e3\u3002\u95ee\u9898\u4e09&#xff1a;cgroup v2\u4e0ev1\u6df7\u7528\u5bfc\u81f4\u884c\u4e3a\u4e0d\u786e\u5b9a\u3002\u89e3\u51b3\u65b9\u6848&#xff1a;\u8fc1\u79fb\u5230\u7eafv2\u73af\u5883\u3002\u4f7f\u7528systemd.unified_cgroup_hierarchy&#061;1\u5185\u6838\u53c2\u6570\u3002<\/p>\n<p>#!\/bin\/bash<br \/>\n# Cgroup v2 \u8d44\u6e90\u4f7f\u7528\u76d1\u63a7\u811a\u672c<\/p>\n<p>CGROUP_BASE&#061;&#034;\/sys\/fs\/cgroup&#034;<br \/>\nMONITOR_INTERVAL&#061;5  # \u76d1\u63a7\u95f4\u9694(\u79d2)<br \/>\nALERT_CPU_THROTTLE&#061;10  # CPU\u9650\u6d41\u544a\u8b66\u9608\u503c(\u6b21)<br \/>\nALERT_MEM_HIGH&#061;85  # \u5185\u5b58\u4f7f\u7528\u7387\u544a\u8b66\u9608\u503c(%)<\/p>\n<p>monitor_cgroup() {<br \/>\n    local cg_path&#061;&#034;$1&#034;<br \/>\n    local cg_name&#061;&#034;$2&#034;<\/p>\n<p>    # CPU\u7edf\u8ba1<br \/>\n    if [ -f &#034;$cg_path\/cpu.stat&#034; ]; then<br \/>\n        cpu_usage&#061;$(grep usage_usec &#034;$cg_path\/cpu.stat&#034; | awk &#039;{print $2}&#039;)<br \/>\n        cpu_throttled&#061;$(grep nr_throttled &#034;$cg_path\/cpu.stat&#034; | awk &#039;{print $2}&#039;)<br \/>\n        echo &#034;[$cg_name] CPU\u4f7f\u7528: $((cpu_usage \/ 1000000))\u79d2 | \u9650\u6d41\u6b21\u6570: $cpu_throttled&#034;<br \/>\n        if [ &#034;$cpu_throttled&#034; -gt &#034;$ALERT_CPU_THROTTLE&#034; ]; then<br \/>\n            echo &#034;  [\u544a\u8b66] CPU\u9650\u6d41\u6b21\u6570\u8fc7\u9ad8! ($cpu_throttled\u6b21)&#034;<br \/>\n        fi<br \/>\n    fi<\/p>\n<p>    # \u5185\u5b58\u7edf\u8ba1<br \/>\n    if [ -f &#034;$cg_path\/memory.current&#034; ] &amp;&amp; [ -f &#034;$cg_path\/memory.max&#034; ]; then<br \/>\n        mem_current&#061;$(cat &#034;$cg_path\/memory.current&#034;)<br \/>\n        mem_max&#061;$(cat &#034;$cg_path\/memory.max&#034;)<br \/>\n        if [ &#034;$mem_max&#034; !&#061; &#034;max&#034; ]; then<br \/>\n            mem_usage&#061;$(( mem_current * 100 \/ mem_max ))<br \/>\n            echo &#034;[$cg_name] \u5185\u5b58: $((mem_current\/1048576))MB \/ $((mem_max\/1048576))MB (${mem_usage}%)&#034;<br \/>\n            if [ &#034;$mem_usage&#034; -gt &#034;$ALERT_MEM_HIGH&#034; ]; then<br \/>\n                echo &#034;  [\u544a\u8b66] \u5185\u5b58\u4f7f\u7528\u7387\u8d85\u8fc7${ALERT_MEM_HIGH}%!&#034;<br \/>\n            fi<br \/>\n        else<br \/>\n            echo &#034;[$cg_name] \u5185\u5b58: $((mem_current\/1048576))MB (\u65e0\u4e0a\u9650\u9650\u5236)&#034;<br \/>\n        fi<br \/>\n    fi<\/p>\n<p>    # \u5185\u5b58\u4e8b\u4ef6(OOM)<br \/>\n    if [ -f &#034;$cg_path\/memory.events&#034; ]; then<br \/>\n        oom_count&#061;$(grep oom &#034;$cg_path\/memory.events&#034; | awk &#039;{print $2}&#039;)<br \/>\n        if [ &#034;${oom_count:-0}&#034; -gt 0 ]; then<br \/>\n            echo &#034;  [\u4e25\u91cd] OOM\u4e8b\u4ef6\u603b\u6570: $oom_count&#034;<br \/>\n        fi<br \/>\n    fi<br \/>\n    echo &#034;&#8212;&#034;<br \/>\n}<\/p>\n<p>echo &#034;&#061;&#061;&#061; Cgroup v2 \u8d44\u6e90\u76d1\u63a7 (\u6bcf${MONITOR_INTERVAL}\u79d2) &#061;&#061;&#061;&#034;<br \/>\necho &#034;\u6309 Ctrl&#043;C \u9000\u51fa\u76d1\u63a7&#034;<br \/>\necho &#034;&#034;<\/p>\n<p>while true; do<br \/>\n    echo &#034;&#8212; \u76d1\u63a7\u65f6\u95f4: $(date &#039;&#043;%H:%M:%S&#039;) &#8212;&#034;<br \/>\n    # \u76d1\u63a7Kubernetes Pod\u7684cgroup<br \/>\n    for pod_cg in &#034;$CGROUP_BASE&#034;\/kubepods.slice\/kubepods-burstable.slice\/kubepods-burstable-pod*\/; do<br \/>\n        [ -d &#034;$pod_cg&#034; ] || continue<br \/>\n        pod_name&#061;$(basename &#034;$pod_cg&#034;)<br \/>\n        monitor_cgroup &#034;$pod_cg&#034; &#034;$pod_name&#034;<br \/>\n    done<br \/>\n    sleep &#034;$MONITOR_INTERVAL&#034;<br \/>\ndone<\/p>\n<p>\u6027\u80fd\u57fa\u51c6\u6d4b\u8bd5\u5efa\u8bae\u3002\u4e0a\u7ebf\u524d\u5728\u9884\u751f\u4ea7\u73af\u5883\u5b8c\u6210\u4ee5\u4e0b\u6d4b\u8bd5\u3002CPU\u5bc6\u96c6\u578b\u8d1f\u8f7d\u4e0b\u9a8c\u8bc1cpu.weight\u7684\u9694\u79bb\u6548\u679c\u3002IO\u5bc6\u96c6\u578b\u8d1f\u8f7d\u4e0b\u6d4b\u8bd5memory.high\u7684\u56de\u6536\u884c\u4e3a\u3002\u6a21\u62df\u8282\u70b9\u5185\u5b58\u538b\u529b\u4e0b\u9a8c\u8bc1memory.low\u7684\u4fdd\u62a4\u6548\u679c\u3002\u6d4b\u91cfcpu.max\u4e0d\u540cperiod\u503c\u5bf9P99\u5ef6\u8fdf\u7684\u5f71\u54cd\u3002<\/p>\n<h3>\u4e94\u3001\u603b\u7ed3<\/h3>\n<p>Cgroup v2\u901a\u8fc7\u7edf\u4e00\u5c42\u7ea7\u6a21\u578b\u89e3\u51b3\u4e86v1\u7684\u67b6\u6784\u7f3a\u9677\u3002CPU\u63a7\u5236\u65b9\u9762&#xff0c;weight\u63d0\u4f9b\u76f8\u5bf9\u4efd\u989d&#xff0c;cpu.max\u63d0\u4f9b\u7edd\u5bf9\u5e26\u5bbd\u9650\u5236\u3002\u4e24\u8005\u7ed3\u5408\u5b9e\u73b0\u7cbe\u7ec6\u5316\u7684CPU\u8d44\u6e90\u7ba1\u63a7\u3002\u5185\u5b58\u63a7\u5236\u65b9\u9762&#xff0c;memory.max\/high\/low\u6784\u6210\u4e09\u7ea7\u5185\u5b58\u7ba1\u7406\u3002\u914d\u5408OOM\u63a7\u5236\u548cPSI\u538b\u529b\u611f\u77e5\u3002\u5728\u8d44\u6e90\u5229\u7528\u7387\u548c\u7a33\u5b9a\u6027\u4e4b\u95f4\u627e\u5230\u5e73\u8861\u3002<\/p>\n<p>\u751f\u4ea7\u73af\u5883\u8c03\u4f18\u7684\u6838\u5fc3\u539f\u5219&#xff1a;Guaranteed Pod\u4e0d\u8bbe\u7f6eCPU limit&#xff0c;\u907f\u514d\u65e0\u610f\u4e49\u7684\u9650\u6d41\u3002Burstable Pod\u8bbe\u7f6e\u5408\u7406\u7684cpu.max\u3002\u5185\u5b58\u7684memory.high\u4f5c\u4e3a\u7f13\u51b2\u5c42\u3002\u9632\u6b62\u786c\u6027OOM Kill\u5f71\u54cd\u4e1a\u52a1\u3002\u76d1\u63a7cpu.stat\u548cmemory.events\u7684\u6307\u6807\u53d8\u5316\u8d8b\u52bf\u3002\u63d0\u524d\u53d1\u73b0\u8d44\u6e90\u538b\u529b\u3002<\/p>\n<p>Cgroup v2\u5df2\u6210\u4e3a\u5bb9\u5668\u8fd0\u884c\u65f6\u7684\u9ed8\u8ba4\u63a7\u5236\u65b9\u5f0f\u3002containerd 1.4&#043;\u548cCRI-O 1.20&#043;\u5747\u9ed8\u8ba4\u4f7f\u7528v2\u3002\u5185\u6838\u9ed8\u8ba4\u542f\u7528cgroup v2\u5df2\u6210\u4e3a\u4e3b\u6d41\u53d1\u884c\u7248\u7684\u6807\u51c6\u3002\u5efa\u8bae\u5c3d\u65e9\u5b8c\u6210\u4ecev1\u5230v2\u7684\u8fc1\u79fb\u3002\u4eab\u53d7\u7edf\u4e00\u5c42\u7ea7\u6a21\u578b\u5e26\u6765\u7684\u7ba1\u7406\u7b80\u5316\u548c\u6027\u80fd\u4f18\u5316\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6df1\u5165\u7406\u89e3Linux Cgroup v2&#xff1a;CPU\u4e0e\u5185\u5b58\u8d44\u6e90\u9694\u79bb\u673a\u5236\u53ca\u751f\u4ea7\u73af\u5883\u8c03\u4f18\u6307\u5357<br \/>\n\u4e00\u3001Cgroup v2\u7684\u8bbe\u8ba1\u6f14\u8fdb\u4e0e\u6838\u5fc3\u6982\u5ff5<br \/>\nControl Group(Cgroup)\u662fLinux\u5185\u6838\u7684\u8d44\u6e90\u9694\u79bb\u4e0e\u63a7\u5236\u673a\u5236\u3002\u5b83\u9650\u5236\u3001\u7edf\u8ba1\u3001\u9694\u79bb\u8fdb\u7a0b\u7ec4\u7684\u8d44\u6e90\u4f7f\u7528\u3002Cgroup v1\u57282008\u5e74\u5408\u5e76\u5165\u5185\u6838\u3002v2\u57282016\u5e74\u53d1\u5e03\u3002v1\u5b58\u5728\u67b6\u6784\u6027\u95ee\u9898\u3002v2\u4ece\u6839\u672c\u4e0a\u91cd\u65b0\u8bbe\u8ba1\u4e86\u63a7\u5236\u5668\u6a21\u578b\u3002<br \/>\nCgroup v1\u7684\u6700\u5927\u95ee\u9898\u662f\u63a7\u5236\u5668\u72ec\u7acb\u7ba1\u7406\u3002\u6bcf\u4e2a\u5b50\u7cfb\u7edf(cpu\u3001memory\u3001blkio)\u72ec\u7acb\u7684\u5c42\u7ea7<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[1493,121,1348],"topic":[],"class_list":["post-81575","post","type-post","status-publish","format-standard","hentry","category-server","tag-k8s","tag-121","tag-1348"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u6df1\u5165\u7406\u89e3Linux Cgroup v2\uff1aCPU\u4e0e\u5185\u5b58\u8d44\u6e90\u9694\u79bb\u673a\u5236\u53ca\u751f\u4ea7\u73af\u5883\u8c03\u4f18\u6307\u5357 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wsisp.com\/helps\/81575.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u6df1\u5165\u7406\u89e3Linux Cgroup v2\uff1aCPU\u4e0e\u5185\u5b58\u8d44\u6e90\u9694\u79bb\u673a\u5236\u53ca\u751f\u4ea7\u73af\u5883\u8c03\u4f18\u6307\u5357 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"\u6df1\u5165\u7406\u89e3Linux Cgroup v2&#xff1a;CPU\u4e0e\u5185\u5b58\u8d44\u6e90\u9694\u79bb\u673a\u5236\u53ca\u751f\u4ea7\u73af\u5883\u8c03\u4f18\u6307\u5357 \u4e00\u3001Cgroup v2\u7684\u8bbe\u8ba1\u6f14\u8fdb\u4e0e\u6838\u5fc3\u6982\u5ff5 Control Group(Cgroup)\u662fLinux\u5185\u6838\u7684\u8d44\u6e90\u9694\u79bb\u4e0e\u63a7\u5236\u673a\u5236\u3002\u5b83\u9650\u5236\u3001\u7edf\u8ba1\u3001\u9694\u79bb\u8fdb\u7a0b\u7ec4\u7684\u8d44\u6e90\u4f7f\u7528\u3002Cgroup v1\u57282008\u5e74\u5408\u5e76\u5165\u5185\u6838\u3002v2\u57282016\u5e74\u53d1\u5e03\u3002v1\u5b58\u5728\u67b6\u6784\u6027\u95ee\u9898\u3002v2\u4ece\u6839\u672c\u4e0a\u91cd\u65b0\u8bbe\u8ba1\u4e86\u63a7\u5236\u5668\u6a21\u578b\u3002 Cgroup v1\u7684\u6700\u5927\u95ee\u9898\u662f\u63a7\u5236\u5668\u72ec\u7acb\u7ba1\u7406\u3002\u6bcf\u4e2a\u5b50\u7cfb\u7edf(cpu\u3001memory\u3001blkio)\u72ec\u7acb\u7684\u5c42\u7ea7\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/81575.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-24T18:59:18+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/81575.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/81575.html\",\"name\":\"\u6df1\u5165\u7406\u89e3Linux Cgroup v2\uff1aCPU\u4e0e\u5185\u5b58\u8d44\u6e90\u9694\u79bb\u673a\u5236\u53ca\u751f\u4ea7\u73af\u5883\u8c03\u4f18\u6307\u5357 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2026-07-24T18:59:18+00:00\",\"dateModified\":\"2026-07-24T18:59:18+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/81575.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/81575.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/81575.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u6df1\u5165\u7406\u89e3Linux Cgroup v2\uff1aCPU\u4e0e\u5185\u5b58\u8d44\u6e90\u9694\u79bb\u673a\u5236\u53ca\u751f\u4ea7\u73af\u5883\u8c03\u4f18\u6307\u5357\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\",\"url\":\"https:\/\/www.wsisp.com\/helps\/\",\"name\":\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"description\":\"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"contentUrl\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/wp.wsisp.com\"],\"url\":\"https:\/\/www.wsisp.com\/helps\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u6df1\u5165\u7406\u89e3Linux Cgroup v2\uff1aCPU\u4e0e\u5185\u5b58\u8d44\u6e90\u9694\u79bb\u673a\u5236\u53ca\u751f\u4ea7\u73af\u5883\u8c03\u4f18\u6307\u5357 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wsisp.com\/helps\/81575.html","og_locale":"zh_CN","og_type":"article","og_title":"\u6df1\u5165\u7406\u89e3Linux Cgroup v2\uff1aCPU\u4e0e\u5185\u5b58\u8d44\u6e90\u9694\u79bb\u673a\u5236\u53ca\u751f\u4ea7\u73af\u5883\u8c03\u4f18\u6307\u5357 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"\u6df1\u5165\u7406\u89e3Linux Cgroup v2&#xff1a;CPU\u4e0e\u5185\u5b58\u8d44\u6e90\u9694\u79bb\u673a\u5236\u53ca\u751f\u4ea7\u73af\u5883\u8c03\u4f18\u6307\u5357 \u4e00\u3001Cgroup v2\u7684\u8bbe\u8ba1\u6f14\u8fdb\u4e0e\u6838\u5fc3\u6982\u5ff5 Control Group(Cgroup)\u662fLinux\u5185\u6838\u7684\u8d44\u6e90\u9694\u79bb\u4e0e\u63a7\u5236\u673a\u5236\u3002\u5b83\u9650\u5236\u3001\u7edf\u8ba1\u3001\u9694\u79bb\u8fdb\u7a0b\u7ec4\u7684\u8d44\u6e90\u4f7f\u7528\u3002Cgroup v1\u57282008\u5e74\u5408\u5e76\u5165\u5185\u6838\u3002v2\u57282016\u5e74\u53d1\u5e03\u3002v1\u5b58\u5728\u67b6\u6784\u6027\u95ee\u9898\u3002v2\u4ece\u6839\u672c\u4e0a\u91cd\u65b0\u8bbe\u8ba1\u4e86\u63a7\u5236\u5668\u6a21\u578b\u3002 Cgroup v1\u7684\u6700\u5927\u95ee\u9898\u662f\u63a7\u5236\u5668\u72ec\u7acb\u7ba1\u7406\u3002\u6bcf\u4e2a\u5b50\u7cfb\u7edf(cpu\u3001memory\u3001blkio)\u72ec\u7acb\u7684\u5c42\u7ea7","og_url":"https:\/\/www.wsisp.com\/helps\/81575.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2026-07-24T18:59:18+00:00","author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"4 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/81575.html","url":"https:\/\/www.wsisp.com\/helps\/81575.html","name":"\u6df1\u5165\u7406\u89e3Linux Cgroup v2\uff1aCPU\u4e0e\u5185\u5b58\u8d44\u6e90\u9694\u79bb\u673a\u5236\u53ca\u751f\u4ea7\u73af\u5883\u8c03\u4f18\u6307\u5357 - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2026-07-24T18:59:18+00:00","dateModified":"2026-07-24T18:59:18+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/81575.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/81575.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/81575.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"\u6df1\u5165\u7406\u89e3Linux Cgroup v2\uff1aCPU\u4e0e\u5185\u5b58\u8d44\u6e90\u9694\u79bb\u673a\u5236\u53ca\u751f\u4ea7\u73af\u5883\u8c03\u4f18\u6307\u5357"}]},{"@type":"WebSite","@id":"https:\/\/www.wsisp.com\/helps\/#website","url":"https:\/\/www.wsisp.com\/helps\/","name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","description":"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41","name":"admin","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/","url":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","contentUrl":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","caption":"admin"},"sameAs":["http:\/\/wp.wsisp.com"],"url":"https:\/\/www.wsisp.com\/helps\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/81575","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/comments?post=81575"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/81575\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=81575"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=81575"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=81575"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=81575"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}