Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了DPDK(二):准备知识2 --- cgroup大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

原文: http://coolshell.cn/articles/17049.html 一、简介 Linux CGroup全称Linux Control Group,是Linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如CPU、内存、磁盘输入输出等)。 主要提供了如下功能: Resource limitation: 限制资源使用,比如内存使用上限以及文件系统的缓存限制。 Prior

原文: http://coolshell.cn/articles/17049.html
一、简介
Linux CGroup全称Linux Control Group,是Linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如cpu、内存、磁盘输入输出等)。
主要提供了如下功能
Resource limitation: 限制资源使用,比如内存使用上限以及文件系统的缓存限制。
Prioritization: 优先级控制,比如:cpu利用和磁盘IO吞吐。
Accounting: 一些审计或一些统计,主要目的是为了计费。
Control: 挂起进程,恢复执行进程。
1、限制cpu利用率
第一步:创建cpu cgroup
 /* 设置cpu利用率为50% */
mkdir("/sys/fs/cgroup/cpu/haoel",755);
system("echo 50000 > /sys/fs/cgroup/cpu/haoel/cpu.cfs_quota_us");
 
mkdir("/sys/fs/cgroup/cpuset/haoel",755);
/* 限制cpu只能使用#2核和#3核 */
system("echo \"2,3\" > /sys/fs/cgroup/cpuset/haoel/cpuset.cpus");
第二步:加入cgroup
 /* 把自己加入cgroup中(syscall(SYS_gettid)为得到线程的系统tid) */
 char cmd[128];
 sprintf(cmd,"echo %ld >> /sys/fs/cgroup/cpu/haoel/tasks",syscall(SYS_gettid));
 system(cmd);
 sprintf(cmd,"echo %ld >> /sys/fs/cgroup/cpuset/haoel/tasks",syscall(SYS_gettid));
 system(cmd);
2、限制内存使用率
# 创建memory cgroup
$ mkdir /sys/fs/cgroup/memory/haoel
$ echo 64k > /sys/fs/cgroup/memory/haoel/memory.limit_in_bytes

# 把上面的进程的pid加入这个cgroup
$ echo [pid] > /sys/fs/cgroup/memory/haoel/tasks

3、磁盘I/O限制
第一步:先创建一个blkio(块设备IO)的cgroup
mkdir /sys/fs/cgroup/blkio/haoel
第二步:模拟IO拷贝
从/dev/sda1上读入数据,输出到/dev/null上。
sudo dd if=/dev/sda1 of=/dev/null
iotop命令我们可以看到相关的IO速度是55MB/s(虚拟机内)
第三步:加入cgroup
前面那个dd命令的pid放进去(注:8:0 是设备号,你可以通过ls -l /dev/sda1获得)
[email protected]:~# echo ‘8:0 1048576‘  > /sys/fs/cgroup/blkio/haoel/blkio.throttle.read_bps_device
[email protected]:~# echo 8128 > /sys/fs/cgroup/blkio/haoel/tasks

大佬总结

以上是大佬教程为你收集整理的DPDK(二):准备知识2 --- cgroup全部内容,希望文章能够帮你解决DPDK(二):准备知识2 --- cgroup所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: