• Docker CPU 资源限制——CPU分片功能测试


      之前的一篇随笔——Docker CPU 资源限制 中介绍了针对COU的某个或某几个核的控制,今天介绍下CPU分片功能,即CPU占比。

    测试步骤

      1、下载CPU测试image。agileek/cpuset-test给出了一种用于测试CPU的image,功能就是将CPU资源用满.

    $ docker pull agileek/cpuset-test

      2、观察未开任何应用时的CPU占用情况

    [root@elk ~]# mpstat -P ALL 5 10
    Linux 3.10.0-123.el7.x86_64 (elk)     02/16/2016     _x86_64_    (8 CPU)
    
    08:10:57 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
    08:11:02 AM  all    0.05    0.00    0.13    0.00    0.00    0.00    0.00    0.00    0.00   99.82
    08:11:02 AM    0    0.20    0.00    0.20    0.00    0.00    0.00    0.00    0.00    0.00   99.60
    08:11:02 AM    1    0.00    0.00    0.20    0.00    0.00    0.00    0.00    0.00    0.00   99.80
    08:11:02 AM    2    0.20    0.00    0.20    0.00    0.00    0.00    0.00    0.00    0.00   99.60
    08:11:02 AM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
    08:11:02 AM    4    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
    08:11:02 AM    5    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
    08:11:02 AM    6    0.00    0.00    0.20    0.00    0.00    0.00    0.00    0.00    0.00   99.80
    08:11:02 AM    7    0.20    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.80
    [root@elk ~]# top
    top - 08:22:48 up 27 days, 20:31,  4 users,  load average: 2.18, 7.36, 4.61
    Tasks: 216 total,   1 running, 215 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  0.0 us,  0.1 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem:  16151132 total,  3742548 used, 12408584 free,     6392 buffers
    KiB Swap:  8200188 total,        0 used,  8200188 free.  1847800 cached Mem
    
      PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                     
    11373 logstash  39  19 8087940 457188  15804 S  0.7  2.8 145:09.16 java                                                                                                                        
      482 root      20   0       0      0      0 S  0.3  0.0  29:06.19 xfsaild/dm-1                                                                                                                
    31713 elastic+  20   0 5797384 269444  14436 S  0.3  1.7 155:43.65 java                                                                                                                        
        1 root      20   0   50684   4488   2336 S  0.0  0.0   0:32.37 systemd                                                                                                                     
        2 root      20   0       0      0      0 S  0.0  0.0   0:00.45 kthreadd                                                                                                                    
        3 root      20   0       0      0      0 S  0.0  0.0   0:04.83 ksoftirqd/0                                                                                                                 
        5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H                                                                                                                
        7 root      rt   0       0      0      0 S  0.0  0.0   0:00.50 migration/0                                                                                                                 
        8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh                                                                                                                      
        9 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/0                                                                                                                     
       10 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/1                                                                                                                     
       11 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/2                                                                                                                     
       12 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/3                                                                                                                     
       13 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/4                                                                                                                     
       14 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/5                                                                                                                     
       15 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/6                                                                                                                     
       16 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcuob/7                                                                                                                     
       17 root      20   0       0      0      0 S  0.0  0.0  16:09.47 rcu_sched                                                                                                                   
       18 root      20   0       0      0      0 S  0.0  0.0   1:01.54 rcuos/0                                                                                                                     
       19 root      20   0       0      0      0 S  0.0  0.0   0:53.77 rcuos/1                                                                                                                     
       20 root      20   0       0      0      0 S  0.0  0.0   1:00.50 rcuos/2                                                                                                                     
       21 root      20   0       0      0      0 S  0.0  0.0   0:53.75 rcuos/3                                                                                                                     
       22 root      20   0       0      0      0 S  0.0  0.0   0:55.59 rcuos/4                                                                                                                     
       23 root      20   0       0      0      0 S  0.0  0.0   0:44.15 rcuos/5                                                                                                                     
       24 root      20   0       0      0      0 S  0.0  0.0   0:53.57 rcuos/6                                       

      3、开启一个容器,占CPU比重为1000,并观察CPU使用情况

    [root@elk ~]# docker run -it --rm -c 1000 agileek/cpuset-test
    Burning 8 CPUs/cores

    另开终端观察CPU占用情况

    [root@elk ~]# top
    top - 08:14:33 up 27 days, 20:22,  4 users,  load average: 7.26, 3.04, 1.18
    Tasks: 220 total,   1 running, 219 sleeping,   0 stopped,   0 zombie
    %Cpu(s):100.0 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem:  16151132 total,  3745232 used, 12405900 free,     6508 buffers
    KiB Swap:  8200188 total,        0 used,  8200188 free.  1849724 cached Mem
    
      PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                     
    17258 root      20   0   36732    936    564 S 800.0  0.0  19:13.78 cpuburn                                                                                                                     
    17218 root      20   0       0      0      0 S   0.3  0.0   0:00.02 kworker/0:2                                                                                                                 
    17348 root      20   0  123680   1724   1148 R   0.3  0.0   0:00.01 top                                                                                                                         
        1 root      20   0   50684   4488   2336 S   0.0  0.0   0:32.35 systemd                                                                                                                     
        2 root      20   0       0      0      0 S   0.0  0.0   0:00.45 kthreadd                                                                                                                    
        3 root      20   0       0      0      0 S   0.0  0.0   0:04.83 ksoftirqd/0                                                                                                                 
        5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                                                                                                                
        7 root      rt   0       0      0      0 S   0.0  0.0   0:00.50 migration/0                                                                                                                 
        8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh                                                                                                                      
        9 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/0                                                                                                                     
       10 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/1                                                                                                                     
       11 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/2                                                                                                                     
       12 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/3                                                                                                                     
       13 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/4                                                                                                                     
       14 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/5                                                                                                                     
       15 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/6                            

     此时可以看到,PID17258的进程(也就是我们刚刚开启的docker容器)CPU占到了全部8颗CPU的100%,也就是800%。

      4、再开启一个容器,占CPU比重为3000,并观察CPU使用情况

    [root@elk ~]# docker run -it --rm -c 3000 agileek/cpuset-test
    Burning 8 CPUs/cores

    另开终端观察CPU占用情况

    [root@elk ~]# top
    top - 08:17:35 up 27 days, 20:25,  4 users,  load average: 11.86, 6.29, 2.72
    Tasks: 227 total,   2 running, 225 sleeping,   0 stopped,   0 zombie
    %Cpu(s):100.0 us,  0.0 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem:  16151132 total,  3752724 used, 12398408 free,     6624 buffers
    KiB Swap:  8200188 total,        0 used,  8200188 free.  1851692 cached Mem
    
      PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                     
    17494 root      20   0   36732    932    560 S 602.1  0.0   3:54.95 cpuburn                                                                                                                     
    17258 root      20   0   36732    936    564 S 197.9  0.0  39:34.78 cpuburn                                                                                                                     
      927 root      20   0   19112   1168    948 S   0.3  0.0   3:04.34 irqbalance                                                                                                                  
    17532 root      20   0  123680   1732   1148 R   0.3  0.0   0:00.01 top                                                                                                                         
        1 root      20   0   50684   4488   2336 S   0.0  0.0   0:32.36 systemd                                                                                                                     
        2 root      20   0       0      0      0 S   0.0  0.0   0:00.45 kthreadd                                                                                                                    
        3 root      20   0       0      0      0 S   0.0  0.0   0:04.83 ksoftirqd/0                                                                                                                 
        5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                                                                                                                
        7 root      rt   0       0      0      0 S   0.0  0.0   0:00.50 migration/0                                                                                                                 
        8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh                                                                                                                      
        9 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/0                                                                                                                     
       10 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/1                                                                                                                     
       11 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/2                                                                                                                     
       12 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/3                                                                                                                     
       13 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/4                                                                                                                     
       14 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/5                                                                                                                     
       15 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcuob/6           

      此时可以看到,PID17258的进程(我们开启的第一个docker容器)CPU占到了全部8颗CPU的1/4,也就是200%。而新开启的,占比3000的docker容器站到了全部8颗CPU的3/4,也就是600%。

  • 相关阅读:
    .Net工具 SocanCode代码生成器
    .net开发中两个“属性”引起的歧异
    读取Excel文件时出现null的解决方法
    Spring中XML配置的12个技巧
    oracle中的NVL,NVL2,NULLIF,COALESCE几个通用函数
    VB6各数据类型序列化和反序列化
    Oracle分页查询语句(四)
    ASP.NET知识库
    你知道.NET框架下的自动内存管理吗?
    构建支持 Ajax 的自动完成和级联式下拉控件
  • 原文地址:https://www.cnblogs.com/zhenyuyaodidiao/p/5190821.html
Copyright © 2020-2023  润新知