分享: 今天我要分享一下我是如何限制小鸡资源占用滴
作案工具准备:
a. MacBook Pro一台
b. 安装好SecureCRT软件
c. 安装有大便11的小鸡一只
关键项:
a. 很多商家TOS或AUP中明确规定了CPU, IO, 连接会话数等阈值, 超过阈值会警告或杀鸡, 例如VirMach, SpartanHost, Naranjatech......
b. 陈旧的cpulimit工具只能限制单进程的CPU占用率
c. 非死不可的工程狮搞出来的Cgroups V2是个好帮手
具体步骤:
a. 开启内核cgroups v2特性支持
$ vi /etc/default/grub
在GRUB_CMDLINE_LINUX_DEFAULT参数中添加"cgroup_no_v1=all systemd.unified_cgroup_hierarchy=1"参数
$ update-grub
$ reboot
重启后执行
$ ls -alh /sys/fs/cgroup/
目录中应该有system.slice和user.slice目录
说明: system.slice存放systemd的service服务单元资源组,user.slice存放用户登录后手工运行程序的资源组,这些资源组都是内核自动创建的, 无需人工干预, 并且针对资源组应用的资源配额是有继承关系的, 例如针对system.slice限制CPU总体占用不超过50%, 则这50%的计算资源是所有下级资源组共享的, 一个服务占的多了另一个服务就会减少, 内核会保证本级和下级加起来的CPU占用率不超过操作系统CPU的50%
b. 限制CPU占用率
1个CPU按100%计算, 2个CPU按200%计算.....
例如在一个3核CPU小鸡上限制所有服务总体CPU占用率为50%则可以执行以下命令:
$ systemctl set-property system.slice CPUQuota=150%
剩下的计算资源可以给用户登录后手工运行的命令, 谁家小鸡还不允许个突发性能啊,
$ systemctl set-property user.slice CPUQuota=100%
根据商家TOS/AUP中的阈值调整上述命令并运行后你的小鸡再也不用担心CPU相关条款了(VirMach家的小鸡限制到一半CPU性能挖个矿啥的也不是不可以哈,,)
c. 限制磁盘IO带宽
具体就不解释了, 如果弄清楚了步骤b那么这个步骤就直接敲命令吧
例如: 所有系统服务磁盘IO读写带宽分别限制为50M/s
$ systemctl set-property system.slice IOReadBandwidthMax='/dev/vda 50M' IOWriteBandwidthMax='/dev/vda 50M'
例如: 所有用户登录后手工执行的程序磁盘IO读写带宽分别限制为50M/s
$ systemctl set-property user.slice IOReadBandwidthMax='/dev/vda 50M' IOWriteBandwidthMax='/dev/vda 50M'
d. 限制磁盘IOPS
$ systemctl set-property system.slice IOReadIOPSMax='/dev/vda 1000' IOWriteIOPSMax='/dev/vda 200'
$ systemctl set-property user.slice IOReadIOPSMax='/dev/vda 1000' IOWriteIOPSMax='/dev/vda 200'
e. 限制连接会话数
$ vi /etc/sysctl.conf
添加
net.netfilter.nf_conntrack_max = 最大连接会话数, 例如20000
然后
$ sysctl -p
f. 资源配额验证
a. CPU配额可以随便跑个命令把CPU拉满然后用top命令直接看(此命令只对user.slice的配额验证生效, 因为命令时用户会话产生的进程),例如我度娘到的这个命令:
$ for i in `seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc -l)`; do dd if=/dev/zero of=/dev/null & done
$ top
仔细瞅瞅结果吧,,,,,,,,,,,
b. 磁盘IO配额可以直接用yabs.sh测试,例如:
$ curl -sL yabs.sh | bash -s -- -i -g
c. 连接会话数限制校验
内核参数你都不信你还能干点儿啥啊!!!
g. 其它的事儿
a. 显示cgroups资源组树形结构
$ systemd-cgls
b. 显示cgroups资源组资源占用情况
$ systemd-cgtop
最后:感 谢 非死不可的工程狮,感谢Linux内核组,祝大家玩的开心啦!
来源:
hostloc:https://hostloc.com/space-uid-53498.html
最后更新于 2021-12-15 00:29:24 并被添加「」标签,已有 259270 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处