Giunsa Pagpahamtang ang Taas nga CPU Load ug Stress Test sa Linux Gamit ang Stress-ng Tool


Isip usa ka System Administrator, mahimo nimong susihon ug bantayan ang kahimtang sa imong mga sistema sa Linux kung sila adunay stress sa taas nga karga. Kini mahimo nga usa ka maayong paagi alang sa mga System Administrator ug Programmer aron:

  1. pag-ayo sa mga kalihokan sa usa ka sistema.
  2. monitor ang operating system kernel interface.
  3. Sulayi ang imong mga sangkap sa hardware sa Linux sama sa CPU, memorya, disk device ug daghan pa aron maobserbahan ang ilang performance ubos sa stress.
  4. pagsukod sa lain-laing mga karga sa kuryente sa usa ka sistema.

Niini nga giya, atong tan-awon ang duha ka importante nga himan, stress ug stress-ng para sa stress testing ubos sa imong Linux system.

1. stress – mao ang usa ka workload generator himan nga gidisenyo sa pagpailalom sa imong sistema sa usa ka configurable sukod sa CPU, memorya, I/O ug disk stress.

2. stress-ng – usa ka updated nga bersyon sa stress workload generator tool nga nagsulay sa imong sistema alang sa mosunod nga mga feature:

  1. CPU compute
  2. stress sa pagmaneho
  3. I/O nag-sync
  4. Pipe I/O
  5. cache thrashing
  6. VM stress
  7. pag-stress sa socket
  8. proseso ang paghimo ug pagtapos
  9. mga kabtangan sa pagbalhin sa konteksto

Bisan kung kini nga mga himan maayo alang sa pagsusi sa imong sistema, kinahanglan dili kini gamiton sa bisan kinsa nga tiggamit sa sistema.

Importante: Girekomendar kaayo nga gamiton nimo kini nga mga himan nga adunay mga pribilehiyo sa root user, tungod kay mahimo nilang i-stress ang imong makina sa Linux nga paspas ug aron malikayan ang pipila ka mga error sa sistema sa dili maayo nga pagkadisenyo nga hardware.

Giunsa ang Pag-install sa 'stress' Tool sa Linux

Aron ma-install ang stress tool sa Debian ug ang mga derivatives niini sama sa Ubuntu ug Mint, padagana ang mosunod nga sugo.

$ sudo apt-get install stress

Aron ma-install ang stress sa usa ka RHEL/CentOS ug Fedora Linux, kinahanglan nimo nga i-on ang EPEL repository ug dayon i-type ang mosunod nga yum command aron ma-install ang parehas:

# yum install stress

Ang kinatibuk-ang syntax sa paggamit sa stress mao ang:

$ sudo stress option argument

Pipila ka mga opsyon nga imong magamit sa stress.

  1. Aron makapatunghag N mga trabahante nga nagtuyok sa sqrt() function, gamita ang –cpu N nga opsyon sama sa mosunod.
  2. Aron makapatunghag N mga trabahante nga nagtuyok sa sync() function, gamita ang –io N nga opsyon sama sa mosunod.
  3. Aron makapatunghag N nga mga trabahante nga nagtuyok sa malloc()/free() function, gamita ang –vm N nga opsyon.
  4. Aron maggahin ug memory kada vm worker, gamita ang –vm-bytes N nga opsyon.
  5. Imbes nga buhian ug i-relocate ang mga kahinguhaan sa panumduman, mahimo nimong mabag-o ang memorya pinaagi sa paggamit sa –vm-keep nga opsyon.
  6. Ibutang ang pagkatulog ngadto sa N segundos sa dili pa buhian ang memorya pinaagi sa paggamit sa –vm-hang N nga opsyon.
  7. Aron makapatunghag N mga trabahante nga nagtuyok sa write()/unlink() functions, gamita ang –hdd N nga opsyon.
  8. Mahimo nimong itakda ang timeout pagkahuman sa N segundos pinaagi sa paggamit sa –timeout N nga opsyon.
  9. Pagbutang ug wait factor nga N microseconds sa dili pa magsugod ang bisan unsang trabaho pinaagi sa paggamit sa –backoff N nga opsyon sama sa mosunod.
  10. Aron ipakita ang mas detalyadong impormasyon kung magpadagan sa stress, gamita ang -v nga opsyon.
  11. Gamita ang –help para tan-awon ang tabang sa paggamit sa stress o tan-awa ang manpage.

1. Aron masusi ang epekto sa sugo sa matag higayon nga modagan ka niini, unaha pagdagan ang uptime nga sugo ug timan-i ang load average.

Sunod, padagana ang stress command aron makapatunghag 8 ka trabahante nga nagtuyok sa sqrt() nga adunay timeout nga 20 segundos. Human sa pagpadagan sa stress, pagdagan pag-usab ang uptime nga sugo ug itandi ang load average.

[email  ~ $ uptime
[email  ~ $ sudo stress --cpu  8 --timeout 20
[email  ~ $ uptime
[email  ~ $ uptime    
 17:20:00 up  7:51,  2 users,  load average: 1.91, 2.16, 1.93     [<-- Watch Load Average]
[email  ~ $ sudo stress --cpu 8 --timeout 20
stress: info: [17246] dispatching hogs: 8 cpu, 0 io, 0 vm, 0 hdd
stress: info: [17246] successful run completed in 21s
[email  ~ $ uptime
 17:20:24 up  7:51,  2 users,  load average: 5.14, 2.88, 2.17     [<-- Watch Load Average]

2. Aron makapatunghag 8 ka trabahante nga nagtuyok sa sqrt() nga may timeout nga 30 segundos, nga nagpakita sa detalyadong impormasyon bahin sa operasyon, padagana kini nga sugo:

[email  ~ $ uptime
[email  ~ $ sudo stress --cpu 8 -v --timeout 30s
[email  ~ $ uptime
[email  ~ $ uptime
 17:27:25 up  7:58,  2 users,  load average: 1.40, 1.90, 1.98     [<-- Watch Load Average]
[email  ~ $ sudo stress --cpu 8 -v --timeout 30s
stress: info: [17353] dispatching hogs: 8 cpu, 0 io, 0 vm, 0 hdd
stress: dbug: [17353] using backoff sleep of 24000us
stress: dbug: [17353] setting timeout to 30s
stress: dbug: [17353] --> hogcpu worker 8 [17354] forked
stress: dbug: [17353] using backoff sleep of 21000us
stress: dbug: [17353] setting timeout to 30s
stress: dbug: [17353] --> hogcpu worker 7 [17355] forked
stress: dbug: [17353] using backoff sleep of 18000us
stress: dbug: [17353] setting timeout to 30s
stress: dbug: [17353] --> hogcpu worker 6 [17356] forked
stress: dbug: [17353] using backoff sleep of 15000us
stress: dbug: [17353] setting timeout to 30s
stress: dbug: [17353] --> hogcpu worker 5 [17357] forked
stress: dbug: [17353] using backoff sleep of 12000us
stress: dbug: [17353] setting timeout to 30s
stress: dbug: [17353] --> hogcpu worker 4 [17358] forked
stress: dbug: [17353] using backoff sleep of 9000us
stress: dbug: [17353] setting timeout to 30s
stress: dbug: [17353] --> hogcpu worker 3 [17359] forked
stress: dbug: [17353] using backoff sleep of 6000us
stress: dbug: [17353] setting timeout to 30s
stress: dbug: [17353] --> hogcpu worker 2 [17360] forked
stress: dbug: [17353] using backoff sleep of 3000us
stress: dbug: [17353] setting timeout to 30s
stress: dbug: [17353] --> hogcpu worker 1 [17361] forked
stress: dbug: [17353] [email  ~ $ uptime
 17:27:59 up  7:59,  2 users,  load average: 5.41, 2.82, 2.28     [<-- Watch Load Average]

3. Aron ma-spwan ang usa ka trabahante sa malloc() ug free() functions nga adunay timeout nga 60 segundos, padagana ang mosunod nga sugo.

[email  ~ $ uptime
[email  ~ $ sudo stress --vm 1 --timeout 60s 
[email  ~ $ uptime
[email  ~ $ uptime
 17:34:07 up  8:05,  2 users,  load average: 1.54, 2.04, 2.11     [<-- Watch Load Average]
[email  ~ $ sudo stress --vm 1 --timeout 60s 
stress: info: [17420] dispatching hogs: 0 cpu, 0 io, 1 vm, 0 hdd
stress: info: [17420] successful run completed in 60s
[email  ~ $ uptime
 17:35:20 up  8:06,  2 users,  load average: 2.45, 2.24, 2.17     [<-- Watch Load Average]

4. Sa pag-spwan sa 4 ka trabahante nga nagtuyok sa sqrt(), 2 ka trabahador nga nag-swaning sa sync(), 2 ka trabahante sa malloc()/free(), nga adunay oras gikan sa 20 segundos ug maggahin ug memory nga 256MB kada vm worker, padagana kini sugo sa ubos.

[email mint ~ $ uptime
[email  ~ $ sudo stress --cpu 4 --io 3 --vm 2 --vm-bytes 256M --timeout 20s 
[email  ~ $ uptime
[email  ~ $ uptime
 17:40:33 up  8:12,  2 users,  load average: 1.68, 1.84, 2.02     [<-- Watch Load Average]
[email  ~ $ sudo stress --cpu 4 --io 3 --vm 2 --vm-bytes 256M --timeout 20s
stress: info: [17501] dispatching hogs: 4 cpu, 3 io, 2 vm, 0 hdd
stress: info: [17501] successful run completed in 20s
[email  ~ $ uptime
 17:40:58 up  8:12,  2 users,  load average: 4.63, 2.54, 2.24     [<-- Watch Load Average]