-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcgroupv2.html
102 lines (92 loc) · 31.9 KB
/
cgroupv2.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>cGroupv2 | Docker LNMP Docs</title>
<meta name="generator" content="VuePress 1.7.1">
<meta name="description" content="">
<link rel="preload" href="/assets/css/0.styles.4bdbd8d9.css" as="style"><link rel="preload" href="/assets/js/app.209f2259.js" as="script"><link rel="preload" href="/assets/js/2.8af6cdaa.js" as="script"><link rel="preload" href="/assets/js/18.9269c7d7.js" as="script"><link rel="prefetch" href="/assets/js/10.be6825a7.js"><link rel="prefetch" href="/assets/js/100.03d20cb7.js"><link rel="prefetch" href="/assets/js/101.e786fe82.js"><link rel="prefetch" href="/assets/js/102.6c9d2de9.js"><link rel="prefetch" href="/assets/js/103.93d73ab5.js"><link rel="prefetch" href="/assets/js/104.9e50d9a7.js"><link rel="prefetch" href="/assets/js/105.f3f9432d.js"><link rel="prefetch" href="/assets/js/11.5ace5492.js"><link rel="prefetch" href="/assets/js/12.755ab736.js"><link rel="prefetch" href="/assets/js/13.3f1cae5e.js"><link rel="prefetch" href="/assets/js/14.77b9cd63.js"><link rel="prefetch" href="/assets/js/15.e1d177bf.js"><link rel="prefetch" href="/assets/js/16.dfd1de0f.js"><link rel="prefetch" href="/assets/js/17.1b359d8a.js"><link rel="prefetch" href="/assets/js/19.781915cc.js"><link rel="prefetch" href="/assets/js/20.21128e97.js"><link rel="prefetch" href="/assets/js/21.dc763957.js"><link rel="prefetch" href="/assets/js/22.0626debe.js"><link rel="prefetch" href="/assets/js/23.a089e602.js"><link rel="prefetch" href="/assets/js/24.eb210250.js"><link rel="prefetch" href="/assets/js/25.9ccc7a03.js"><link rel="prefetch" href="/assets/js/26.88883549.js"><link rel="prefetch" href="/assets/js/27.e060a936.js"><link rel="prefetch" href="/assets/js/28.a219e9bf.js"><link rel="prefetch" href="/assets/js/29.4f674c07.js"><link rel="prefetch" href="/assets/js/3.b55cf771.js"><link rel="prefetch" href="/assets/js/30.2bb6ea0b.js"><link rel="prefetch" href="/assets/js/31.54b20cf7.js"><link rel="prefetch" href="/assets/js/32.4c3406bc.js"><link rel="prefetch" href="/assets/js/33.d54cec12.js"><link rel="prefetch" href="/assets/js/34.3f5de6f2.js"><link rel="prefetch" href="/assets/js/35.beff2e39.js"><link rel="prefetch" href="/assets/js/36.f9a34636.js"><link rel="prefetch" href="/assets/js/37.3dc04856.js"><link rel="prefetch" href="/assets/js/38.6d855a6e.js"><link rel="prefetch" href="/assets/js/39.fc73f21d.js"><link rel="prefetch" href="/assets/js/4.6d0e0c17.js"><link rel="prefetch" href="/assets/js/40.af31e3da.js"><link rel="prefetch" href="/assets/js/41.671019c4.js"><link rel="prefetch" href="/assets/js/42.2294d29b.js"><link rel="prefetch" href="/assets/js/43.db6a01ac.js"><link rel="prefetch" href="/assets/js/44.dd24a4b9.js"><link rel="prefetch" href="/assets/js/45.49453970.js"><link rel="prefetch" href="/assets/js/46.fd24200c.js"><link rel="prefetch" href="/assets/js/47.1949af45.js"><link rel="prefetch" href="/assets/js/48.79ae6536.js"><link rel="prefetch" href="/assets/js/49.fcde6b7f.js"><link rel="prefetch" href="/assets/js/5.0b207204.js"><link rel="prefetch" href="/assets/js/50.3b4d4418.js"><link rel="prefetch" href="/assets/js/51.edfa61cd.js"><link rel="prefetch" href="/assets/js/52.1b769c3f.js"><link rel="prefetch" href="/assets/js/53.dd0bc9d8.js"><link rel="prefetch" href="/assets/js/54.39176a80.js"><link rel="prefetch" href="/assets/js/55.573b9c31.js"><link rel="prefetch" href="/assets/js/56.b6a02619.js"><link rel="prefetch" href="/assets/js/57.f8ed8637.js"><link rel="prefetch" href="/assets/js/58.3c7e3293.js"><link rel="prefetch" href="/assets/js/59.a1bc011e.js"><link rel="prefetch" href="/assets/js/6.aa1ab838.js"><link rel="prefetch" href="/assets/js/60.3d64fb37.js"><link rel="prefetch" href="/assets/js/61.1d72bf34.js"><link rel="prefetch" href="/assets/js/62.ff909897.js"><link rel="prefetch" href="/assets/js/63.65e0c100.js"><link rel="prefetch" href="/assets/js/64.5b81f0b9.js"><link rel="prefetch" href="/assets/js/65.7b5fd5e7.js"><link rel="prefetch" href="/assets/js/66.10a94919.js"><link rel="prefetch" href="/assets/js/67.b4203de5.js"><link rel="prefetch" href="/assets/js/68.3334bcd9.js"><link rel="prefetch" href="/assets/js/69.076289e0.js"><link rel="prefetch" href="/assets/js/7.7f24f1db.js"><link rel="prefetch" href="/assets/js/70.d3dd1b6a.js"><link rel="prefetch" href="/assets/js/71.a63a7128.js"><link rel="prefetch" href="/assets/js/72.1ce4ef4e.js"><link rel="prefetch" href="/assets/js/73.1b194ce3.js"><link rel="prefetch" href="/assets/js/74.2cafcc32.js"><link rel="prefetch" href="/assets/js/75.811dfed4.js"><link rel="prefetch" href="/assets/js/76.9ecc5669.js"><link rel="prefetch" href="/assets/js/77.2d332363.js"><link rel="prefetch" href="/assets/js/78.1abbc712.js"><link rel="prefetch" href="/assets/js/79.7f694bba.js"><link rel="prefetch" href="/assets/js/8.dd0082e7.js"><link rel="prefetch" href="/assets/js/80.0c834a8c.js"><link rel="prefetch" href="/assets/js/81.e68b030b.js"><link rel="prefetch" href="/assets/js/82.ee15fd72.js"><link rel="prefetch" href="/assets/js/83.6630a350.js"><link rel="prefetch" href="/assets/js/84.c80210c2.js"><link rel="prefetch" href="/assets/js/85.84af9d91.js"><link rel="prefetch" href="/assets/js/86.c8eed3fa.js"><link rel="prefetch" href="/assets/js/87.158128c8.js"><link rel="prefetch" href="/assets/js/88.2d5efaec.js"><link rel="prefetch" href="/assets/js/89.e355abb7.js"><link rel="prefetch" href="/assets/js/9.d899d975.js"><link rel="prefetch" href="/assets/js/90.15e01064.js"><link rel="prefetch" href="/assets/js/91.a2f1ddf4.js"><link rel="prefetch" href="/assets/js/92.a40c425c.js"><link rel="prefetch" href="/assets/js/93.34101b59.js"><link rel="prefetch" href="/assets/js/94.2f5ec23e.js"><link rel="prefetch" href="/assets/js/95.7a3dabc9.js"><link rel="prefetch" href="/assets/js/96.2ecdb225.js"><link rel="prefetch" href="/assets/js/97.864e2d0f.js"><link rel="prefetch" href="/assets/js/98.3dad48c6.js"><link rel="prefetch" href="/assets/js/99.97e12689.js">
<link rel="stylesheet" href="/assets/css/0.styles.4bdbd8d9.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><!----> <span class="site-name">Docker LNMP Docs</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/" class="nav-link">
使用指引
</a></div><div class="nav-item"><a href="/ee/" class="nav-link">
商业版
</a></div><div class="nav-item"><a href="https://github.com/khs1994-docker/lnmp" target="_blank" rel="noopener noreferrer" class="nav-link external">
GitHub
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://zan.khs1994.com" target="_blank" rel="noopener noreferrer" class="nav-link external">
捐赠
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://cloud.tencent.com/act/cps/redirect?redirect=1077&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console" target="_blank" rel="noopener noreferrer" class="nav-link external">
腾讯云服务器限时秒杀
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/" class="nav-link">
使用指引
</a></div><div class="nav-item"><a href="/ee/" class="nav-link">
商业版
</a></div><div class="nav-item"><a href="https://github.com/khs1994-docker/lnmp" target="_blank" rel="noopener noreferrer" class="nav-link external">
GitHub
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://zan.khs1994.com" target="_blank" rel="noopener noreferrer" class="nav-link external">
捐赠
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://cloud.tencent.com/act/cps/redirect?redirect=1077&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console" target="_blank" rel="noopener noreferrer" class="nav-link external">
腾讯云服务器限时秒杀
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <!----></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>Introduction</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/" aria-current="page" class="sidebar-link">khs1994-docker/lnmp 支持文档</a></li><li><a href="/why.html" class="sidebar-link">项目初衷</a></li><li><a href="/docker.html" class="sidebar-link">安装 Docker</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>安装</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/install/linux.html" class="sidebar-link">Linux/macOS 上安装</a></li><li><a href="/install/windows.html" class="sidebar-link">Windows 上安装</a></li><li><a href="/mysql.html" class="sidebar-link">MySQL</a></li><li><a href="/update.html" class="sidebar-link">更新</a></li><li><a href="/cli.html" class="sidebar-link">命令行工具</a></li><li><a href="/init.html" class="sidebar-link">初始化过程</a></li><li><a href="/path.html" class="sidebar-link">本地路径和 Docker 内路径对应关系</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>开发环境</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/development.html" class="sidebar-link">开发环境</a></li><li><a href="/phpmyadmin.html" class="sidebar-link">phpMyAdmin</a></li><li><a href="/custom.html" class="sidebar-link">个性化方案</a></li><li><a href="/lrew.html" class="sidebar-link">lrew</a></li><li><a href="/backup.html" class="sidebar-link">备份恢复</a></li><li><a href="/cleanup.html" class="sidebar-link">清理</a></li><li><a href="/config.html" class="sidebar-link">软件配置</a></li><li><a href="/port.html" class="sidebar-link">服务端口开放</a></li><li><a href="/command.html" class="sidebar-link">PHPer 常用命令容器化</a></li><li><a href="/lpm.html" class="sidebar-link">包管理工具 lpm</a></li><li><a href="/compose.html" class="sidebar-link">Docker Compose</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>nginx</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/nginx/" class="sidebar-link">NGINX</a></li><li><a href="/nginx/config.html" class="sidebar-link">一键生成 nginx 配置</a></li><li><a href="/nginx/issue-ssl.html" class="sidebar-link">申请 SSL 证书</a></li><li><a href="/nginx/https.html" class="sidebar-link">NGINX HTTPS 配置文件</a></li><li><a href="/nginx/unit.html" class="sidebar-link">NGINX Unit</a></li><li><a href="/nginx/arg.html" class="sidebar-link">Nginx 内置变量</a></li><li><a href="/nginx/http3.html" class="sidebar-link">http3</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>PHP</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/php.html" class="sidebar-link">PHP 扩展列表</a></li><li><a href="/xdebug.html" class="sidebar-link">Xdebug in Docker + PhpStorm</a></li><li><a href="/laravel.html" class="sidebar-link">Laravel 最佳实践</a></li><li><a href="/composer.html" class="sidebar-link">Composer 最佳实践</a></li><li><a href="/phpunit.html" class="sidebar-link">PHPUnit in Docker + PHPStorm 最佳实践</a></li><li><a href="/xhprof.html" class="sidebar-link">XHProf</a></li><li><a href="/swoole.html" class="sidebar-link">Swoole</a></li><li><a href="/composer/" class="sidebar-link">Composer</a></li><li><a href="/composer/satis.html" class="sidebar-link">Satis</a></li><li><a href="/symfony.html" class="sidebar-link">Symfony</a></li><li><a href="/php_eol.html" class="sidebar-link">使用 EOL 的 PHP 版本</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>生产环境</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/production.html" class="sidebar-link">配置</a></li><li><a href="/swarm/" class="sidebar-link">Docker Swarm</a></li><li><a href="/kubernetes/" class="sidebar-link">在 Kubernetes 集群部署 LNMP</a></li><li><a href="/kubernetes/docker-desktop.html" class="sidebar-link">K8s on Docker Desktop</a></li><li><a href="/registry.html" class="sidebar-link">Docker Registry</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>计划任务</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/crontab.html" class="sidebar-link">Crontab 计划任务</a></li><li><a href="/supervisord.html" class="sidebar-link">Supervisord</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>镜像构建</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/manifest.html" class="sidebar-link">构建支持多种架构的 Docker 镜像</a></li><li><a href="/buildx.html" class="sidebar-link">docker buildx</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>数据卷 Volumes</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/volumes/nfs.html" class="sidebar-link">NFS Volume(NFSv4)</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>集群</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/clusterkit/" class="sidebar-link">ClusterKit</a></li><li><a href="/clusterkit/memcached.html" class="sidebar-link">Memcached</a></li><li><a href="/clusterkit/mysql.html" class="sidebar-link">MySQL 复制</a></li><li><a href="/clusterkit/redis_cluster.html" class="sidebar-link">Redis 集群版 (redis-cli --cluster)</a></li><li><a href="/clusterkit/redis_replication.html" class="sidebar-link">Redis 主从版 (M-S) 复制模式 replication</a></li><li><a href="/clusterkit/redis_sentinel.html" class="sidebar-link">Redis 哨兵版 Sentinel</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>参考</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/dockerd.html" class="sidebar-link">dockerd</a></li><li><a href="/dockerfiles.html" class="sidebar-link">Dockerfile 注意事项</a></li><li><a href="/systemd.html" class="sidebar-link">systemd</a></li><li><a href="/journalctl.html" class="sidebar-link">systemd 日志管理</a></li><li><a href="/git.html" class="sidebar-link">Git Tips</a></li><li><a href="/gpg.html" class="sidebar-link">Git GPG</a></li><li><a href="/network.html" class="sidebar-link">国内网络问题</a></li><li><a href="/mirror.html" class="sidebar-link">Docker 常用镜像站点</a></li><li><a href="/windows/container.html" class="sidebar-link">Windows Container</a></li><li><a href="/arm.html" class="sidebar-link">ARM 架构</a></li><li><a href="/ab.html" class="sidebar-link">ab command</a></li><li><a href="/minio.html" class="sidebar-link">Minio</a></li><li><a href="/windows/wsl2.html" class="sidebar-link">WSL2</a></li><li><a href="/powershell.html" class="sidebar-link">PowerShell</a></li><li><a href="/go.html" class="sidebar-link">Go</a></li><li><a href="/github.html" class="sidebar-link">GitHub</a></li><li><a href="/vscode.html" class="sidebar-link">VSCode</a></li><li><a href="/cgroupv2.html" aria-current="page" class="active sidebar-link">cGroupv2</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/cgroupv2.html#fedora-31-恢复到-cgroupv1" class="sidebar-link">Fedora 31+ 恢复到 cGroupv1</a></li><li class="sidebar-sub-header"><a href="/cgroupv2.html#禁用-cgroup-1" class="sidebar-link">禁用 cGroup 1</a></li><li class="sidebar-sub-header"><a href="/cgroupv2.html#cgroupv1-介绍" class="sidebar-link">cGroupv1 介绍</a></li><li class="sidebar-sub-header"><a href="/cgroupv2.html#参数" class="sidebar-link">参数</a></li><li class="sidebar-sub-header"><a href="/cgroupv2.html#子系统-subsystems" class="sidebar-link">子系统 subsystems</a></li><li class="sidebar-sub-header"><a href="/cgroupv2.html#手动挂载" class="sidebar-link">手动挂载</a></li><li class="sidebar-sub-header"><a href="/cgroupv2.html#cgroupv2-2" class="sidebar-link">cGroupv2</a></li></ul></li><li><a href="/iscsi.html" class="sidebar-link">ISCSI</a></li><li><a href="/mount.html" class="sidebar-link">文件挂载相关命令</a></li><li><a href="/cfssl.html" class="sidebar-link">CFSSL</a></li><li><a href="/ssh.html" class="sidebar-link">SSH</a></li><li><a href="/encrypt.html" class="sidebar-link">加解密文件</a></li><li><a href="/coding/ci.html" class="sidebar-link">【玩转腾讯云】在 CODING DevOps 持续集成中使用 Buildx 构建 Docker 镜像</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="cgroupv2"><a href="#cgroupv2" class="header-anchor">#</a> cGroupv2</h1> <ul><li>https://github.com/torvalds/linux/blob/master/Documentation/admin-guide/cgroup-v2.rst</li> <li>https://blog.csdn.net/juS3Ve/article/details/78769197</li> <li>https://blog.csdn.net/sinat_20184565/article/details/98475824</li> <li>https://hustcat.github.io/cgroup-v2-and-writeback-support/</li> <li>https://my.oschina.net/u/1262062/blog/2051159</li> <li>https://docs.docker.com/config/containers/resource_constraints/</li> <li>http://www.jinbuguo.com/systemd/systemd.html#systemd.unified_cgroup_hierarchy</li> <li>https://www.redhat.com/sysadmin/fedora-31-control-group-v2</li> <li>https://facebookmicrosites.github.io/cgroup2/</li> <li>https://wiki.archlinux.org/index.php?title=Cgroups&oldid=596909</li> <li>https://www.lijiaocn.com/%E6%8A%80%E5%B7%A7/2019/01/28/linux-tool-cgroup-detail.html</li></ul> <h2 id="fedora-31-恢复到-cgroupv1"><a href="#fedora-31-恢复到-cgroupv1" class="header-anchor">#</a> Fedora 31+ 恢复到 cGroupv1</h2> <blockquote><p>在 Fedora 31+ 中使用 Docker <strong>必须</strong> 恢复到 cGroupv1</p></blockquote> <ul><li>https://www.linuxprobe.com/fedora-30-shell.html</li></ul> <div class="language-bash extra-class"><pre class="language-bash"><code>$ <span class="token function">sudo</span> dnf <span class="token function">install</span> grubby
$ <span class="token function">sudo</span> grubby --update-kernel<span class="token operator">=</span>ALL --args<span class="token operator">=</span><span class="token string">"systemd.unified_cgroup_hierarchy=0"</span>
<span class="token comment"># 恢复到 cGroupv2</span>
<span class="token comment"># $ sudo grubby --update-kernel=ALL --remove-args="systemd.unified_cgroup_hierarchy=0"</span>
</code></pre></div><ul><li>https://github.com/docker/for-linux/issues/665</li></ul> <h2 id="禁用-cgroup-1"><a href="#禁用-cgroup-1" class="header-anchor">#</a> 禁用 cGroup 1</h2> <p>添加内核参数 <code>cgroup_no_v1=all</code></p> <h2 id="cgroupv1-介绍"><a href="#cgroupv1-介绍" class="header-anchor">#</a> cGroupv1 介绍</h2> <p>cgroupv2 实现的 controller 是 cgroupv1 的子集,可以同时使用 cgroupv1 和 cgroupv2,但一个 controller 不能既在 cgroupv1 中使用,又在 cgroupv2 中使用</p> <ul><li><code>cgroup</code> 关联一组 task 和一组 subsystem 的配置参数。一个 task 对应一个进程, cgroup 是资源分片的最小单位。</li> <li><code>subsystem</code> 资源管理器,一个 subsystem 对应一项资源的管理,如 cpu, cpuset, memory 等</li> <li><code>hierarchy</code> 关联一个到多个 subsystem 和一组树形结构的 cgroup. 和 cgroup 不同,hierarchy 包含的是可管理的 subsystem 而非具体参数</li></ul> <p><strong>规则</strong></p> <ul><li>一个 hierarchy 可以有一个或多个 subsystem</li></ul> <div class="language-bash extra-class"><pre class="language-bash"><code>$ <span class="token function">mount</span> -t cgroup -o cpu,cpuset,memory cpu_and_mem /sys/fs/cgroup/cpu_and_mem
</code></pre></div><ul><li><p>一个已经被挂载的 subsystem 只能被再次挂载在一个空的 hierarchy 上 (已经 mount 一个 subsystem 的 hierarchy 不能挂载一个已经被其它 hierarchy 挂载的 subsystem)。一个 subsystem 不能挂载到一个已经挂载了不同 subsystem 的 hierarchy 上。</p></li> <li><p>subsystem 相同的 hierarchy 是被重复使用的。</p></li> <li><p>当创建一个新的 hierarchy 时,如果使用的 subsystem 被其他 hierarchy 使用,则会返回 EBUSY 错误。如 /sys/fs/cgroup 中已经在 cpuset 和 memory 中单独使用了名为 cpuset 和 memory 的 subsystem,则重新创建一个包含了它们的 hierarchy 会返回错误。</p></li></ul> <div class="language-bash extra-class"><pre class="language-bash"><code>$ <span class="token function">mount</span> -t cgroup -o cpuset,memory mem1 cgrp1/
mount: mem1 is already mounted or /cgroup/cgrp1 busy
</code></pre></div><ul><li><p>每个 task 只能在同一个 hierarchy 的唯一一个 cgroup 里(不能在同一个 hierarchy 下有超过一个 cgroup 的tasks 里同时有这个进程的 pid)。在 hierarchy memory 中创建 2 个 cgroup mem1 和 mem2,可以看到将当前 bash 进程写入到 mem2/tasks 之后,mem1/tasks 中的内容就会被清空。</p></li> <li><p>子进程在被 fork 出时自动继承父进程所在 cgroup,但是 fork 之后就可以按需调整到其他 cgroup</p></li></ul> <h2 id="参数"><a href="#参数" class="header-anchor">#</a> 参数</h2> <ul><li><code>cpu.cfs_period_us</code> cpu 分配的周期(微秒),默认为 <code>100000</code></li> <li><code>cpu.cfs_quota_us</code> 表示该 control group 限制占用的时间(微秒),默认为 -1,表示不限制。如果设为<code>50000</code>,表示占用 <code>50000/100000=50%</code> 的 CPU。对于单核来说,最大等于 cpu.cfs_period_us 的值,对于多核来说,可以理解为最多可使用的 cpu 核数(4 核使用 2 核 <code>200000</code>)</li></ul> <h2 id="子系统-subsystems"><a href="#子系统-subsystems" class="header-anchor">#</a> 子系统 subsystems</h2> <ul><li><p>https://github.com/torvalds/linux/tree/master/Documentation/admin-guide/cgroup-v1</p></li> <li><p><code>blkio</code> 子系统,可以限制进程的块设备 io。</p></li> <li><p><code>cpu</code> 子系统,主要限制进程的 cpu 使用率。</p></li> <li><p><code>cpuacct</code> 子系统,可以统计 cgroups 中的进程的 cpu 使用报告。</p></li> <li><p><code>cpuset</code> 子系统,可以为 cgroups 中的进程分配单独的 cpu 节点或者内存节点。</p></li> <li><p><code>devices</code> 子系统,可以控制进程能够访问某些设备。</p></li> <li><p><code>freezer</code> 子系统,可以挂起或者恢复 cgroups 中的进程。</p></li> <li><p><code>hugetlb</code> 这个子系统主要针对于HugeTLB系统进行限制,这是一个大页文件系统。</p></li> <li><p><code>memory</code> 子系统,可以限制进程的 memory 使用量。</p></li> <li><p><code>net_cls</code> 子系统,可以标记 cgroups 中进程的网络数据包,然后可以使用 tc 模块(traffic control)对数据包进行控制。</p></li> <li><p><code>net_prio</code> 这个子系统用来设计网络流量的优先级</p></li> <li><p><code>pids</code></p></li> <li><p><code>rdma</code></p></li></ul> <h2 id="手动挂载"><a href="#手动挂载" class="header-anchor">#</a> 手动挂载</h2> <div class="language-bash extra-class"><pre class="language-bash"><code>/cgroup/
├── blkio <span class="token operator"><</span>--------------- hierarchy/root cgroup
│ ├── blkio.io_merged <span class="token operator"><</span>--------------- subsystem parameter
<span class="token punctuation">..</span>. <span class="token punctuation">..</span>.
│ ├── blkio.weight
│ ├── blkio.weight_device
│ ├── cgroup.event_control
│ ├── cgroup.procs
│ ├── lxc <span class="token operator"><</span>--------------- cgroup
│ │ ├── blkio.io_merged <span class="token operator"><</span>--------------- subsystem parameter
│ │ ├── blkio.io_queued
<span class="token punctuation">..</span>. <span class="token punctuation">..</span>. <span class="token punctuation">..</span>.
│ │ └── tasks <span class="token operator"><</span>--------------- task list
│ ├── notify_on_release
│ ├── release_agent
│ └── tasks
<span class="token punctuation">..</span>.
</code></pre></div><div class="language-bash extra-class"><pre class="language-bash"><code>$ <span class="token function">mount</span> -t tmpfs cgroup_root /sys/fs/cgroup
$ <span class="token function">mkdir</span> /sys/fs/cgroup/cpuset
$ <span class="token function">mount</span> -t cgroup cpuset -ocpuset /sys/fs/cgroup/cpuset
</code></pre></div><p><strong>实践</strong></p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token comment"># 查看挂载点</span>
$ <span class="token function">mount</span> -t cgroup
$ <span class="token builtin class-name">cd</span> /sys/fs/cgroup/cpu
$ <span class="token function">mkdir</span> cpu_test
</code></pre></div><div class="language-c extra-class"><pre class="language-c"><code><span class="token keyword">int</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token keyword">void</span><span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">int</span> i <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword">for</span><span class="token punctuation">(</span><span class="token punctuation">;</span><span class="token punctuation">;</span><span class="token punctuation">)</span> i<span class="token operator">++</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
</code></pre></div><p>编译该 C 程序并运行</p> <div class="language-bash extra-class"><pre class="language-bash"><code>$ gcc test.c
$ ./a.out
</code></pre></div><div class="language-bash extra-class"><pre class="language-bash"><code>$ <span class="token function">top</span>
<span class="token comment"># 该程序占用 cpu 100%</span>
<span class="token comment"># 默认-1不限制,现在改成20000,可以理解使用率限制在20%</span>
$ <span class="token builtin class-name">echo</span> <span class="token number">20000</span> <span class="token operator">></span> /sys/fs/cgroup/cpu/cpu_test/cpu.cfs_quota_us
<span class="token comment"># 查看程序 PID</span>
$ <span class="token builtin class-name">echo</span> <span class="token number">23732</span> <span class="token operator">></span> /sys/fs/cgroup/cpu/cpu_test/tasks
<span class="token comment"># 再次执行 top,可以看到 cpu 占用降到 20%</span>
</code></pre></div><h2 id="cgroupv2-2"><a href="#cgroupv2-2" class="header-anchor">#</a> cGroupv2</h2> <div class="language-bash extra-class"><pre class="language-bash"><code>$ <span class="token function">mount</span> -t cgroup2 none <span class="token variable">$MOUNT_POINT</span>
$ <span class="token builtin class-name">echo</span> <span class="token string">"+memory"</span> <span class="token operator">></span> /sys/fs/cgroup2/cgroup.subtree_control
</code></pre></div></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/khs1994-docker/lnmp/edit/master/docs/cgroupv2.md" target="_blank" rel="noopener noreferrer">Edit this page</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
←
<a href="/vscode.html" class="prev">
VSCode
</a></span> <span class="next"><a href="/iscsi.html">
ISCSI
</a>
→
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/assets/js/app.209f2259.js" defer></script><script src="/assets/js/2.8af6cdaa.js" defer></script><script src="/assets/js/18.9269c7d7.js" defer></script>
</body>
</html>