1、下载一个stress压力工具的镜像
<code>[root@docker ~]</code><code># docker pull joedval/stress</code>
<code>Pulling repository joedval</code><code>/stress</code>
<code>7eb627cb08a2: Download complete </code>
<code>b0082ba983ef: Download complete </code>
<code>109b72e23ca5: Download complete </code>
<code>a1a076997d57: Download complete </code>
<code>Status: Downloaded newer image </code><code>for</code> <code>joedval</code><code>/stress</code><code>:latest</code>
2、随机生成一个以“joedval/stress”镜像为基础的容器,设定权级为512
<code>[root@docker ~]</code><code># docker run -it --rm -c 512 joedval/stress --cpu 1</code>
<code>stress: info: [1] dispatching hogs: 1 cpu, 0 io, 0 vm, 0 hdd</code>
<code>可以看到cpu占用为99.6%,接近100%</code>
<code>[root@docker ~]</code><code># top</code>
<code>top</code> <code>- 15:19:07 up 1:04, 3 </code><code>users</code><code>, load average: 1.62, 1.03, 0.43</code>
<code>Tasks: 158 total, 2 running, 156 sleeping, 0 stopped, 0 zombie</code>
<code>Cpu(s): 99.3%us, 0.3%sy, 0.0%ni, 0.0%</code><code>id</code><code>, 0.0%wa, 0.3%hi, 0.0%si, 0.0%st</code>
<code>Mem: 3910160k total, 1289624k used, 2620536k </code><code>free</code><code>, 96856k buffers</code>
<code>Swap: 4194300k total, 0k used, 4194300k </code><code>free</code><code>, 914440k cached</code>
<code> </code><code>PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND </code>
<code> </code><code>4144 root 20 0 7208 120 28 R 99.6 0.0 2:58.09 stress </code>
<code> </code><code>4403 root 20 0 15032 1252 924 R 0.3 0.0 0:00.32 </code><code>top</code>
<code> </code><code>1 root 20 0 19356 1532 1228 S 0.0 0.0 0:01.55 init </code>
<code> </code><code>2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd </code>
<code> </code><code>3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration</code><code>/0</code>
<code> </code><code>4 root 20 0 0 0 0 S 0.0 0.0 0:00.03 ksoftirqd</code><code>/0</code>
<code> </code><code>5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 stopper</code><code>/0</code>
<code> </code><code>6 root RT 0 0 0 0 S 0.0 0.0 0:00.02 watchdog</code><code>/0</code>
<code> </code><code>7 root 20 0 0 0 0 S 0.0 0.0 0:01.62 events</code><code>/0</code>
<code> </code><code>8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events</code><code>/0</code>
<code> </code><code>9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events_long</code><code>/0</code>
<code> </code><code>10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 events_power_ef </code>
<code> </code><code>11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cgroup </code>
<code> </code><code>12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper </code>
<code> </code><code>13 root 20 0 0 0 0 S 0.0 0.0 0:00.03 netns </code>
<code> </code><code>14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 async</code><code>/mgr</code>
<code> </code><code>15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 pm </code>
<code> </code><code>16 root 20 0 0 0 0 S 0.0 0.0 0:00.02 sync_supers </code>
<code> </code><code>17 root 20 0 0 0 0 S 0.0 0.0 0:00.01 bdi-default</code>
3、继续生成一个容器
<code>root@docker ~]</code><code># docker run -it --rm -c 512 joedval/stress --cpu 1</code>
<code>top</code> <code>- 15:20:48 up 1:05, 3 </code><code>users</code><code>, load average: 1.55, 1.13, 0.52</code>
<code>Tasks: 164 total, 3 running, 161 sleeping, 0 stopped, 0 zombie</code>
<code>Cpu(s): 99.0%us, 0.7%sy, 0.0%ni, 0.0%</code><code>id</code><code>, 0.0%wa, 0.3%hi, 0.0%si, 0.0%st</code>
<code>Mem: 3910160k total, 1298324k used, 2611836k </code><code>free</code><code>, 97924k buffers</code>
<code>Swap: 4194300k total, 0k used, 4194300k </code><code>free</code><code>, 917480k cached</code>
<code> </code><code>4772 root 20 0 7208 124 28 R 49.9 0.0 0:16.12 stress </code>
<code> </code><code>4144 root 20 0 7208 120 28 R 49.5 0.0 4:22.39 stress </code>
<code> </code><code>7 root 20 0 0 0 0 S 0.0 0.0 0:01.66 events</code><code>/0</code>
<code> </code><code>17 root 20 0 0 0 0 S 0.0 0.0 0:00.01 bdi-default </code>
<code>然后,可以发现存在两个stress的进程,各占用49.5%</code>
<code>我们再次添加一个容器,并修改下stress权限为1024</code>
<code>top</code> <code>- 15:22:13 up 1:07, 4 </code><code>users</code><code>, load average: 2.53, 1.50, 0.70</code>
<code>Tasks: 171 total, 4 running, 167 sleeping, 0 stopped, 0 zombie</code>
<code>Mem: 3910160k total, 1318152k used, 2592008k </code><code>free</code><code>, 99008k buffers</code>
<code>Swap: 4194300k total, 0k used, 4194300k </code><code>free</code><code>, 921024k cached</code>
<code> </code><code>4992 root 20 0 7208 120 28 R 49.5 0.0 0:09.79 stress </code>
<code> </code><code>4144 root 20 0 7208 120 28 R 24.9 0.0 4:59.56 stress </code>
<code> </code><code>4772 root 20 0 7208 124 28 R 24.6 0.0 0:53.28 stress </code>
<code> </code><code>2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd </code>
<code> </code><code>7 root 20 0 0 0 0 S 0.0 0.0 0:01.69 events</code><code>/0</code>
<code> </code><code>16 root 20 0 0 0 0 S 0.0 0.0 0:00.02 sync_supers</code>
4、查看容器信息:
<code>[root@docker ~]</code><code># docker ps -a</code>
<code>CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES</code>
<code>fcc6cb7b064c joedval</code><code>/stress</code> <code>"stress --cpu 1"</code> <code>29 seconds ago Up 28 seconds drunk_rosalind </code>
<code>7c195fe2e038 joedval</code><code>/stress</code> <code>"stress --cpu 1"</code> <code>2 minutes ago Up 2 minutes loving_galileo </code>
<code>9b19fbca489b joedval</code><code>/stress</code> <code>"stress --cpu 1"</code> <code>7 minutes ago Up 7 minutes furious_rosalind</code>
5、测试内存:
<code>[root@docker ~]</code><code># docker run -it --rm -m 128m joedval/stress --vm 1 --vm-bytes 120m --vm-hang 0</code>
<code>stress: info: [1] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd</code>
<code>[root@docker ~]</code><code># docker ps -l</code>
<code>CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES</code>
<code>9841ee711d7f joedval</code><code>/stress</code> <code>"stress --vm 1 --vm- 8 seconds ago Up 6 seconds boring_jones </code>
<code>[root@docker ~]</code><code># docker run -it --rm -m 128m joedval/stress --vm 1 --vm-bytes 512m --vm-hang 0</code>
<code>stress: FAIL: [1] (415) <-- worker 5 got signal 9</code>
<code>stress: WARN: [1] (417) now reaping child worker processes</code>
<code>stress: FAIL: [1] (421) </code><code>kill</code> <code>error: No such process</code>
<code>stress: FAIL: [1] (451) failed run completed </code><code>in</code> <code>3s</code>
<code>[root@docker ~]</code><code># docker run -it --rm -m 128m joedval/stress --vm 1 --vm-bytes 255m --vm-hang 0</code>
<code>[root@docker ~]</code><code># docker run -it --rm -m 128m joedval/stress --vm 1 --vm-bytes 256m --vm-hang 0</code>
<code>stress: FAIL: [1] (415) <-- worker 6 got signal 9</code>
<code>stress: FAIL: [1] (451) failed run completed </code><code>in</code> <code>2s</code>
<code>说明:不能超过预设值的两倍(比如上面案例中256m是128m,所以自动退出了)</code>
本文转自 冰冻vs西瓜 51CTO博客,原文链接:http://blog.51cto.com/molewan/1757918,如需转载请自行联系原作者