Kuinka asettaa korkea suorittimen kuormitus ja stressitesti Linuxille "Stress-ng" -työkalun avulla
Järjestelmänvalvojana saatat haluta tutkia ja seurata Linux-järjestelmien tilaa, kun ne ovat suuren kuormituksen alaisena. Tämä voi olla hyvä tapa järjestelmänvalvojille ja ohjelmoijille:
- hienosäätää järjestelmän toimintaa.
- valvoa käyttöjärjestelmän ytimen rajapintoja.
- testaa Linux-laitteistosi komponentteja, kuten suoritinta, muistia, levylaitteita ja monia muita tarkkaillaksesi niiden suorituskykyä stressissä.
- mittaa järjestelmän erilaisia virtaa kuluttavia kuormia.
Tässä oppaassa tarkastellaan kahta tärkeää työkalua, stress ja stress-ng stressitestaukseen Linux-järjestelmissäsi.
1. Stress – on työkuorman luontityökalu, joka on suunniteltu alistamaan järjestelmäsi määritettävälle prosessorin, muistin, I/O:n ja levyn rasituksen mittaukselle.
2. stress-ng – on päivitetty versio stressityökuormitustyökalusta, joka testaa järjestelmän seuraavien ominaisuuksien varalta:
- CPU:n laskenta
- ajaa stressiä
- I/O-synkronointi
- Putken I/O
- välimuistin lyöminen
- VM stressi
- pistorasia rasittaa
- prosessin luominen ja lopettaminen
- kontekstin vaihto-ominaisuudet
Vaikka nämä työkalut ovat hyviä järjestelmän tutkimiseen, niitä ei tulisi käyttää vain kenenkään järjestelmän käyttäjän.
Tärkeää: On erittäin suositeltavaa käyttää näitä työkaluja pääkäyttäjän oikeuksin, koska ne voivat rasittaa Linux-konettasi niin nopeasti ja välttää tietyt järjestelmävirheet huonosti suunnitellussa laitteistossa. .
Kuinka asentaa "stressi"-työkalu Linuxiin
Asenna stressityökalu Debianiin ja sen johdannaisiin, kuten Ubuntuun ja Mintiin, suorittamalla seuraava komento.
sudo apt-get install stress
Jos haluat asentaa stressin RHEL/CentOS- ja Fedora Linuxiin, sinun on otettava EPEL-tietovarasto käyttöön ja kirjoittamalla seuraava yum-komento asentaaksesi sama:
yum install stress
Stressin käytön yleinen syntaksi on:
sudo stress option argument
Joitakin vaihtoehtoja, joita voit käyttää stressin kanssa.
- Jos haluat luoda N-työläisiä, jotka pyörivät sqrt()-funktiolla, käytä –cpu N -vaihtoehtoa seuraavasti.
- Jos haluat synnyttää N työntekijää, joka pyörii sync()-funktiolla, käytä –io N -vaihtoehtoa seuraavasti.
- Jos haluat saada N-työntekijää pyörimään malloc()/free()-funktioilla, käytä –vm N -vaihtoehtoa.
- Voit varata muistia virtuaalikonetyöntekijää kohti –vm-bytes N -vaihtoehdon avulla.
- Muistiresurssien vapauttamisen ja uudelleen jakamisen sijaan voit likata muistia –vm-keep-vaihtoehdolla.
- Aseta lepotilaksi N sekuntia ennen kuin vapautat muistia –vm-hang N -vaihtoehdon avulla.
- Käytä –hdd N -vaihtoehtoa, jos haluat syntyä N työntekijää, jotka pyörittävät write()/unlink()-funktioita.
- Voit asettaa aikakatkaisun N sekunnin kuluttua käyttämällä –aikakatkaisu N -vaihtoehtoa.
- Aseta odotuskerroin N mikrosekuntia ennen työn alkamista käyttämällä –backoff N -vaihtoehtoa seuraavasti.
- Jos haluat näyttää tarkempia tietoja stressin aikana, käytä -v-vaihtoehtoa.
- Käytä –apua nähdäksesi stressin käyttöön liittyviä ohjeita tai tarkastellaksesi ohjesivua.
Kuinka käytän stressiä Linux-järjestelmissä?
1. Jos haluat tutkia komennon vaikutusta joka kerta, kun suoritat sen, suorita ensin uptime-komento ja merkitse muistiin kuormituksen keskiarvo.
Suorita seuraavaksi stress-komento luodaksesi 8 työntekijää, jotka pyörivät sqrt()-tilassa 20 sekunnin aikakatkaisulla. Suorita stressin jälkeen uudelleen uptime-komento ja vertaa kuormituksen keskiarvoa.
tecmint@tecmint ~ $ uptime
tecmint@tecmint ~ $ sudo stress --cpu 8 --timeout 20
tecmint@tecmint ~ $ uptime
Näytelähtö
tecmint@tecmint ~ $ uptime
17:20:00 up 7:51, 2 users, load average: 1.91, 2.16, 1.93 [<-- Watch Load Average]
tecmint@tecmint ~ $ 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
tecmint@tecmint ~ $ uptime
17:20:24 up 7:51, 2 users, load average: 5.14, 2.88, 2.17 [<-- Watch Load Average]
2. Jos haluat saada 8 työntekijää pyörimään sqrt():llä 30 sekunnin aikakatkaisulla ja näyttämään yksityiskohtaisia tietoja toiminnasta, suorita tämä komento:
tecmint@tecmint ~ $ uptime
tecmint@tecmint ~ $ sudo stress --cpu 8 -v --timeout 30s
tecmint@tecmint ~ $ uptime
Näytelähtö
tecmint@tecmint ~ $ uptime
17:27:25 up 7:58, 2 users, load average: 1.40, 1.90, 1.98 [<-- Watch Load Average]
tecmint@tecmint ~ $ 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] tecmint@tecmint ~ $ uptime
17:27:59 up 7:59, 2 users, load average: 5.41, 2.82, 2.28 [<-- Watch Load Average]
3. Jos haluat saada yhden malloc()- ja free()-funktioiden työntekijän 60 sekunnin aikakatkaisulla, suorita seuraava komento.
tecmint@tecmint ~ $ uptime
tecmint@tecmint ~ $ sudo stress --vm 1 --timeout 60s
tecmint@tecmint ~ $ uptime
Näytelähtö
tecmint@tecmint ~ $ uptime
17:34:07 up 8:05, 2 users, load average: 1.54, 2.04, 2.11 [<-- Watch Load Average]
tecmint@tecmint ~ $ 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
tecmint@tecmint ~ $ uptime
17:35:20 up 8:06, 2 users, load average: 2.45, 2.24, 2.17 [<-- Watch Load Average]
4. Swan 4 työntekijää pyörii sqrt(), 2 työntekijää pyörii sync(), 2 työntekijää malloc()/free(), aika on 20 sekuntia ja varaa muisti 256 Mt VM-työntekijää kohti, suorita tämä komento alla.
tecmint@tecmint ~ $ uptime
tecmint@tecmint ~ $ sudo stress --cpu 4 --io 3 --vm 2 --vm-bytes 256M --timeout 20s
tecmint@tecmint ~ $ uptime
Näytelähtö
tecmint@tecmint ~ $ uptime
17:40:33 up 8:12, 2 users, load average: 1.68, 1.84, 2.02 [<-- Watch Load Average]
tecmint@tecmint ~ $ 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
tecmint@tecmint ~ $ uptime
17:40:58 up 8:12, 2 users, load average: 4.63, 2.54, 2.24 [<-- Watch Load Average]