Rfr*_*ile 6 resource-management cgroup systemd
以 systemd-cgls 中的层次结构为例:
\n\n\xe2\x94\x94\xe2\x94\x80user.slice\n \xe2\x94\x9c\xe2\x94\x80user-1000.slice\n \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x80user@1000.service\n \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80init.scope\n \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x803262 /lib/systemd/systemd --user\n \xe2\x94\x82 \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x803263 (sd-pam) \n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80session-3.scope\n \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x803260 sshd: user1 [priv]\n \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x803362 sshd: user1@pts/1 \n \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x803363 -bash\n \xe2\x94\x82 \xe2\x94\x94\xe2\x94\x803378 ssh-agent -s\n \xe2\x94\x94\xe2\x94\x80user-0.slice\n \xe2\x94\x9c\xe2\x94\x80session-1.scope\n \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x803151 sshd: root@pts/0 \n \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x803252 -bash\n \xe2\x94\x82 \xe2\x94\x9c\xe2\x94\x803625 systemd-cgls\nRun Code Online (Sandbox Code Playgroud)\n\n如果我为 user.slice 设置限制,例如 5M 内存,Memory 行会清楚地报告它:
\n\nsystemctl status user.slice\n\xe2\x97\x8f user.slice\n Loaded: loaded (/etc/systemd/system/user.slice; static; vendor preset: enabled)\n Active: active since Mon 2016-08-22 11:32:13 CEST; 52min ago\n Tasks: 12\n Memory: 3.1M (limit: 5.0M)\n CPU: 1.275s\n CGroup: /user.slice\n...\nRun Code Online (Sandbox Code Playgroud)\n\nuser-1000 切片应用了限制,如果我用该用户对系统施加压力,我可以看到它。但状态不报告此子切片中的限制:
\n\nsystemctl status user-1000.slice\n\xe2\x97\x8f user-1000.slice - User Slice of user1\n Loaded: loaded (/run/systemd/transient/user-1000.slice; transient; vendor preset: enabled)\nTransient: yes\n Active: active since Mon 2016-08-22 11:32:42 CEST; 1h 8min ago\n Tasks: 6 (limit: 12288)\n Memory: 856.0K\n CPU: 521ms\nRun Code Online (Sandbox Code Playgroud)\n\n按照 proc 方式我可以看到 user-1000 进程属于 user 切片:
\n\n# cat /proc/3260/cgroup \n10:memory:/user.slice/user-1000.slice\n...\nRun Code Online (Sandbox Code Playgroud)\n\n并直接在 /sys/ 内部检查:
\n\nroot@server1:/sys/fs/cgroup/memory/user.slice# cat memory.limit_in_bytes \n5242880\nroot@server1:/sys/fs/cgroup/memory/user.slice# cd user-1000.slice/\nroot@server1:/sys/fs/cgroup/memory/user.slice/user-1000.slice# cat memory.limit_in_bytes \n9223372036854771712\nRun Code Online (Sandbox Code Playgroud)\n\n如何知道子进程/切片是否具有父 cgroup 中定义的限制?
\n| 归档时间: |
|
| 查看次数: |
1540 次 |
| 最近记录: |