Kif Imponi Tagħbija Għolja tas-CPU u Test ta' Stress fuq Linux billi tuża Stress-ng Tool


Bħala Amministratur tas-Sistema, tista 'tkun trid teżamina u timmonitorja l-istatus tas-sistemi Linux tiegħek meta jkunu taħt stress ta' tagħbija għolja. Dan jista' jkun mod tajjeb għall-Amministraturi tas-Sistema u l-Programmaturi biex:

  1. irfinar attivitajiet fuq sistema.
  2. immonitorja l-interfaces tal-kernel tas-sistema operattiva.
  3. ittestja l-komponenti tal-ħardwer Linux tiegħek bħal CPU, memorja, tagħmir tad-disk u ħafna oħrajn biex josservaw il-prestazzjoni tagħhom taħt stress.
  4. tkejjel tagħbijiet differenti li jikkunsmaw enerġija fuq sistema.

F'din il-gwida, se nħarsu lejn żewġ għodod importanti, stress u stress-ng għall-ittestjar tal-istress taħt is-sistemi Linux tiegħek.

1. stress - hija għodda ġeneratur ta 'tagħbija tax-xogħol iddisinjata biex tissuġġetta s-sistema tiegħek għal miżura konfigurabbli ta' CPU, memorja, I/O u stress tad-diska.

2. stress-ng - hija verżjoni aġġornata tal-għodda tal-ġeneratur tal-piż tax-xogħol tal-istress li tittestja s-sistema tiegħek għall-karatteristiċi li ġejjin:

  1. CPU jikkalkula
  2. ssuq stress
  3. I/O sinkronizza
  4. I/O tal-pajp
  5. cache thrashing
  6. Stress tal-VM
  7. socket stressing
  8. ħolqien u terminazzjoni tal-proċess
  9. propjetajiet tal-bidla tal-kuntest

Għalkemm dawn l-għodod huma tajbin biex jeżaminaw is-sistema tiegħek, m'għandhomx jintużaw biss minn kwalunkwe utent tas-sistema.

Importanti: Huwa rrakkomandat ħafna li tuża dawn l-għodod bi privileġġi tal-utent tal-għeruq, minħabba li jistgħu jenfasizzaw il-magna Linux tiegħek malajr u biex tevita ċerti żbalji tas-sistema fuq ħardwer iddisinjat ħażin.

Kif Tinstalla l-Għodda 'stress' fil-Linux

Biex tinstalla l-għodda tal-istress fuq Debian u d-derivattivi tagħha bħal Ubuntu u Mint, mexxi l-kmand li ġej.

$ sudo apt-get install stress

Biex tinstalla stress fuq RHEL/CentOS u Fedora Linux, trid tixgħel ir-repożitorju EPEL u mbagħad ittajpja l-kmand yum li ġej biex tinstalla l-istess:

# yum install stress

Is-sintassi ġenerali għall-użu tal-istress hija:

$ sudo stress option argument

Xi għażliet li tista 'tuża bi stress.

  1. Biex tbid N ħaddiema li jduru fuq il-funzjoni sqrt(), uża l-għażla –cpu N kif ġej.
  2. Biex tbid N ħaddiema li jduru fuq il-funzjoni sync(), uża l-għażla –io N kif ġej.
  3. Biex tbid N ħaddiema li jduru fuq funzjonijiet malloc()/free(), uża l-għażla –vm N.
  4. Biex talloka memorja għal kull ħaddiem vm, uża l-għażla –vm-bytes N.
  5. Minflok ma teħles u tirrialloka r-riżorsi tal-memorja, tista' tħammeġ mill-ġdid il-memorja billi tuża l-għażla –vm-keep.
  6. Issettja sleep għal N sekondi qabel ma tillibera l-memorja billi tuża l-għażla –vm-hang N.
  7. Biex tbid N ħaddiema li jduru fuq funzjonijiet write()/unlink(), uża l-għażla –hdd N.
  8. Tista’ tissettja timeout wara N sekondi billi tuża l-għażla –timeout N.
  9. Issettja fattur ta' stennija ta' N mikrosekondi qabel ma jibda kwalunkwe xogħol billi tuża l-għażla –backoff N kif ġej.
  10. Biex turi informazzjoni aktar dettaljata meta tħaddem stress, uża l-għażla -v.
  11. Uża –help biex tara l-għajnuna għall-użu tal-istress jew tara l-manpage.

1. Biex teżamina l-effett tal-kmand kull darba li tħaddem, l-ewwel mexxi l-kmand tal-uptime u nnota l-medja tat-tagħbija.

Sussegwentement, mexxi l-kmand tal-istress biex tbid 8 ħaddiema li jduru fuq sqrt() b'timeout ta '20 sekonda. Wara li tmexxi l-istress, erġa ħaddem il-kmand tal-uptime u qabbel il-medja tat-tagħbija.

[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. Biex tbid 8 ħaddiema li jduru fuq sqrt() b'timeout ta' 30 sekonda, li turi informazzjoni dettaljata dwar l-operazzjoni, mexxi dan il-kmand:

[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. Biex tiffranka ħaddiem wieħed tal-funzjonijiet malloc() u free() b'timeout ta' 60 sekonda, mexxi l-kmand li ġej.

[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. Biex tiffranka 4 ħaddiema li jduru fuq sqrt(), 2 ħaddiema li jduru fuq is-sinkronizzazzjoni(), 2 ħaddiema fuq malloc()/free(), b'ħin minn 20 sekonda u talloka memorja ta' 256MB għal kull ħaddiem vm, mexxi dan kmand hawn taħt.

[email  ~ $ 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]