目录
1.pidstat
2.stress
3.cgroup
4.使用cgroup进行内存限制
5.使用cgroup进行cpu使用率控制
1.pidstat
安装和使用(centos):
yum install sysstats
yum remove sysstats
pidstat -u(默认),查看进程cpu使用情况:
pidstat -r,查看内存使用情况:
pidstat -d,查看IO相关读写速率。
pidstat -p port,查看指定端口的进程情况:
pidstat -C x,查看指定服务的情况:
2.stress
stress是一个压力检测工具
stress -c x,表示启动x个进程进行cpu压力检测。
stress -i x,表示启动x个进程进行IO压力检测。
stress -m x --vm-bytes ym,表示启动x个进程进行内存压力检测。
配合pidstat -C stress进行检测。
3.cgroup
cat /proc/filesystems |grep cgroup,查看cgroup相关信息。
cat /proc/cgroups,查看cgroup可以控制那些资源。
cat /proc/$$/cgroup,查看cgroup相关配置。
mount |grep cgroup,查看cgroup配置文件位置。
4.使用cgroup进行内存限制
首先找到memory内存相关配置文件挂载位置
进入该目录
创建新目录
查看当前内存限制,默认非常大
设置20m大小限制
启动stress压力检测,使用pidstat -r -C stress -p ALL查看内存使用情况。
最后将pid写入memory下的tasks文件,完成内存限制。
5.使用cgroup进行cpu使用率控制
同上
关键部分,如何查看cpu利用率限制默认值:
cpu.cfs_period_us表示分母默认100000,cpu.cfs_quota_us表示分子。
cpu.cfs_quota_us默认为-1,表示不受到cgroup影响。
cpu.cfs_quota_us改为20000,利用率为20000/100000=20%;
值得注意的是:cpu设置限制后,stress不会崩溃,而是cpu利用率被强制限制为设定的20%。
memory设置限制后,stress则直接崩溃。