woyoudn 发表于 2018-5-29 12:02:29

Docker下使用stress进行压力测试

  1、下载一个stress压力工具的镜像

# docker pull joedval/stress
Pulling repository joedval/stress
7eb627cb08a2: Download complete
b0082ba983ef: Download complete
109b72e23ca5: Download complete
a1a076997d57: Download complete
Status: Downloaded newer image for joedval/stress:latest  2、随机生成一个以“joedval/stress”镜像为基础的容器,设定权级为512

# docker run -it --rm -c 512 joedval/stress --cpu 1
stress: info: dispatching hogs: 1 cpu, 0 io, 0 vm, 0 hdd
可以看到cpu占用为99.6%,接近100%
# top
top - 15:19:07 up1:04,3 users,load average: 1.62, 1.03, 0.43
Tasks: 158 total,   2 running, 156 sleeping,   0 stopped,   0 zombie
Cpu(s): 99.3%us,0.3%sy,0.0%ni,0.0%id,0.0%wa,0.3%hi,0.0%si,0.0%st
Mem:   3910160k total,1289624k used,2620536k free,    96856k buffers
Swap:4194300k total,      0k used,4194300k free,   914440k cached
   PID USER      PRNIVIRTRESSHR S %CPU %MEM    TIME+COMMAND                                                                              
4144 root      20   07208120   28 R 99.60.0   2:58.09 stress                                                                              
4403 root      20   0 15032 1252924 R0.30.0   0:00.32 top                                                                                 
   1 root      20   0 19356 1532 1228 S0.00.0   0:01.55 init                                                                                 
   2 root      20   0   0    0    0 S0.00.0   0:00.00 kthreadd                                                                              
   3 root      RT   0   0    0    0 S0.00.0   0:00.00 migration/0                                                                           
   4 root      20   0   0    0    0 S0.00.0   0:00.03 ksoftirqd/0                                                                           
   5 root      RT   0   0    0    0 S0.00.0   0:00.00 stopper/0                                                                           
   6 root      RT   0   0    0    0 S0.00.0   0:00.02 watchdog/0                                                                           
   7 root      20   0   0    0    0 S0.00.0   0:01.62 events/0                                                                              
   8 root      20   0   0    0    0 S0.00.0   0:00.00 events/0                                                                              
   9 root      20   0   0    0    0 S0.00.0   0:00.00 events_long/0                                                                        
    10 root      20   0   0    0    0 S0.00.0   0:00.00 events_power_ef                                                                     
    11 root      20   0   0    0    0 S0.00.0   0:00.00 cgroup                                                                              
    12 root      20   0   0    0    0 S0.00.0   0:00.00 khelper                                                                              
    13 root      20   0   0    0    0 S0.00.0   0:00.03 netns                                                                                 
    14 root      20   0   0    0    0 S0.00.0   0:00.00 async/mgr                                                                           
    15 root      20   0   0    0    0 S0.00.0   0:00.00 pm                                                                                    
    16 root      20   0   0    0    0 S0.00.0   0:00.02 sync_supers                                                                           
    17 root      20   0   0    0    0 S0.00.0   0:00.01 bdi-default  3、继续生成一个容器
root@docker ~]# docker run -it --rm -c 512 joedval/stress --cpu 1
stress: info: dispatching hogs: 1 cpu, 0 io, 0 vm, 0 hdd
# top
top - 15:20:48 up1:05,3 users,load average: 1.55, 1.13, 0.52
Tasks: 164 total,   3 running, 161 sleeping,   0 stopped,   0 zombie
Cpu(s): 99.0%us,0.7%sy,0.0%ni,0.0%id,0.0%wa,0.3%hi,0.0%si,0.0%st
Mem:   3910160k total,1298324k used,2611836k free,    97924k buffers
Swap:4194300k total,      0k used,4194300k free,   917480k cached
   PID USER      PRNIVIRTRESSHR S %CPU %MEM    TIME+COMMAND                                                                              
4772 root      20   07208124   28 R 49.90.0   0:16.12 stress                                                                              
4144 root      20   07208120   28 R 49.50.0   4:22.39 stress                                                                              
   1 root      20   0 19356 1532 1228 S0.00.0   0:01.55 init                                                                                 
   2 root      20   0   0    0    0 S0.00.0   0:00.00 kthreadd                                                                              
   3 root      RT   0   0    0    0 S0.00.0   0:00.00 migration/0                                                                           
   4 root      20   0   0    0    0 S0.00.0   0:00.03 ksoftirqd/0                                                                           
   5 root      RT   0   0    0    0 S0.00.0   0:00.00 stopper/0                                                                           
   6 root      RT   0   0    0    0 S0.00.0   0:00.02 watchdog/0                                                                           
   7 root      20   0   0    0    0 S0.00.0   0:01.66 events/0                                                                              
   8 root      20   0   0    0    0 S0.00.0   0:00.00 events/0                                                                              
   9 root      20   0   0    0    0 S0.00.0   0:00.00 events_long/0                                                                        
    10 root      20   0   0    0    0 S0.00.0   0:00.00 events_power_ef                                                                     
    11 root      20   0   0    0    0 S0.00.0   0:00.00 cgroup                                                                              
    12 root      20   0   0    0    0 S0.00.0   0:00.00 khelper                                                                              
    13 root      20   0   0    0    0 S0.00.0   0:00.03 netns                                                                                 
    14 root      20   0   0    0    0 S0.00.0   0:00.00 async/mgr                                                                           
    15 root      20   0   0    0    0 S0.00.0   0:00.00 pm                                                                                    
    16 root      20   0   0    0    0 S0.00.0   0:00.02 sync_supers                                                                           
    17 root      20   0   0    0    0 S0.00.0   0:00.01 bdi-default      
然后,可以发现存在两个stress的进程,各占用49.5%
我们再次添加一个容器,并修改下stress权限为1024
# top
top - 15:22:13 up1:07,4 users,load average: 2.53, 1.50, 0.70
Tasks: 171 total,   4 running, 167 sleeping,   0 stopped,   0 zombie
Cpu(s): 99.3%us,0.3%sy,0.0%ni,0.0%id,0.0%wa,0.3%hi,0.0%si,0.0%st
Mem:   3910160k total,1318152k used,2592008k free,    99008k buffers
Swap:4194300k total,      0k used,4194300k free,   921024k cached
   PID USER      PRNIVIRTRESSHR S %CPU %MEM    TIME+COMMAND                                                                              
4992 root      20   07208120   28 R 49.50.0   0:09.79 stress                                                                              
4144 root      20   07208120   28 R 24.90.0   4:59.56 stress                                                                              
4772 root      20   07208124   28 R 24.60.0   0:53.28 stress                                                                              
   1 root      20   0 19356 1532 1228 S0.00.0   0:01.55 init                                                                                 
   2 root      20   0   0    0    0 S0.00.0   0:00.01 kthreadd                                                                              
   3 root      RT   0   0    0    0 S0.00.0   0:00.00 migration/0                                                                           
   4 root      20   0   0    0    0 S0.00.0   0:00.03 ksoftirqd/0                                                                           
   5 root      RT   0   0    0    0 S0.00.0   0:00.00 stopper/0                                                                           
   6 root      RT   0   0    0    0 S0.00.0   0:00.02 watchdog/0                                                                           
   7 root      20   0   0    0    0 S0.00.0   0:01.69 events/0                                                                              
   8 root      20   0   0    0    0 S0.00.0   0:00.00 events/0                                                                              
   9 root      20   0   0    0    0 S0.00.0   0:00.00 events_long/0                                                                        
    10 root      20   0   0    0    0 S0.00.0   0:00.00 events_power_ef                                                                     
    11 root      20   0   0    0    0 S0.00.0   0:00.00 cgroup                                                                              
    12 root      20   0   0    0    0 S0.00.0   0:00.00 khelper                                                                              
    13 root      20   0   0    0    0 S0.00.0   0:00.03 netns                                                                                 
    14 root      20   0   0    0    0 S0.00.0   0:00.00 async/mgr                                                                           
    15 root      20   0   0    0    0 S0.00.0   0:00.00 pm                                                                                    
    16 root      20   0   0    0    0 S0.00.0   0:00.02 sync_supers  4、查看容器信息:
# docker ps -a
CONTAINER ID      IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
fcc6cb7b064c      joedval/stress      "stress --cpu 1"    29 seconds ago      Up 28 seconds                                 drunk_rosalind      
7c195fe2e038      joedval/stress      "stress --cpu 1"    2 minutes ago       Up 2 minutes                                    loving_galileo      
9b19fbca489b      joedval/stress      "stress --cpu 1"    7 minutes ago       Up 7 minutes                                    furious_rosalind  
  5、测试内存:
# docker run -it --rm -m 128m joedval/stress --vm 1 --vm-bytes 120m --vm-hang 0
stress: info: dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
# docker ps -l
CONTAINER ID      IMAGE               COMMAND                CREATED             STATUS            PORTS               NAMES
9841ee711d7f      joedval/stress      "stress --vm 1 --vm-   8 seconds ago       Up 6 seconds                            boring_jones      
# docker run -it --rm -m 128m joedval/stress --vm 1 --vm-bytes 512m --vm-hang 0
stress: info: dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
stress: FAIL: (415) <-- worker 5 got signal 9
stress: WARN: (417) now reaping child worker processes
stress: FAIL: (421) kill error: No such process
stress: FAIL: (451) failed run completed in 3s
# docker run -it --rm -m 128m joedval/stress --vm 1 --vm-bytes 255m --vm-hang 0
stress: info: dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
# docker run -it --rm -m 128m joedval/stress --vm 1 --vm-bytes 256m --vm-hang 0
stress: info: dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
stress: FAIL: (415) <-- worker 6 got signal 9
stress: WARN: (417) now reaping child worker processes
stress: FAIL: (421) kill error: No such process
stress: FAIL: (451) failed run completed in 2s
说明:不能超过预设值的两倍(比如上面案例中256m是128m,所以自动退出了)  
页: [1]
查看完整版本: Docker下使用stress进行压力测试