zoukankan      html  css  js  c++  java
  • DPDK(二):准备知识2 --- cgroup

    原文: 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获得)
    root@ubuntu:~# echo '8:0 1048576'  > /sys/fs/cgroup/blkio/haoel/blkio.throttle.read_bps_device
    root@ubuntu:~# echo 8128 > /sys/fs/cgroup/blkio/haoel/tasks

  • 相关阅读:
    通过理解List和IList的区别,加深对接口回调的理解
    mysql学习笔记之mysqlparameter(摘)
    MSSQL表中字段更新后,视图中的字段不更新的解决办法
    如何设置firefox,使其可以支持剪贴板
    CSS图片下载器
    VS2008下.NET 单元测试工具 NUnit2.5 配置与集成方法
    discuz x1.5通过uchome注册后免激活补丁(自动激活)
    (转)七秘诀工作效率与薪水翻番
    TRIGGER OF ORACLE
    SQL LOADER 的使用
  • 原文地址:https://www.cnblogs.com/xiaomayi-cyj/p/10542932.html
Copyright © 2011-2022 走看看