Jos olet tehnyt järjestelmänvalvojatyötä tarpeeksi kauan, olet nähnyt pelättyjä "Palvelin on hidas" -tapauksia. Pitkään aikaan tällaiset tapaukset saivat minut kuopan vatsaan. Miten ihmeessä selvität jotain noin subjektiivista? Jokapäiväisen käyttäjän "hidas" voi johtua vain muiden prosessien (aikataulutettujen tai ei), jotka ovat käynnissä ja kuluttavat tavallista enemmän resursseja, tai palvelimessa voi olla jotain vikaa.
Kun aloitin työskentelyn järjestelmänvalvojana, vastasin välittömästi: "Tarvitsen lisätietoja tästä." Yleensä käyttäjä ei pysty antamaan lisätietoja, koska hän ei tiedä, mitä kulissien takana tapahtuu tai miten selittää näkemäänsä, paitsi "se on vain hidasta". Nykyään, ennen kuin edes vastaan käyttäjälle, tarkistan muutaman asian.
Voit kertoa paljon kirjautumalla isäntään. Pystytkö kirjautumaan sisään ollenkaan? Onko kirjautuminen hidas vai jumiutuuko? Ssh-komennolla on kolme virheenkorjaustasoa, joista jokainen antaa sinulle runsaasti tietoa ennen kuin olet edes järjestelmän käytössä. Ota virheenkorjaus käyttöön lisäämällä ylimääräinen v -v-vaihtoehtoon. Esimerkiksi kolmannen tason virheenkorjaus, jota käytän yksinomaan, olisi:
[~]$ ssh -vvv isäntänimi.domain.comKatsotaan nyt kolmea suurinta palvelimen syytä hidastuminen: CPU, RAM ja levyn I/O. Suorittimen käyttö voi aiheuttaa yleistä hitautta isännässä ja vaikeuksia tehtävien suorittamisessa oikea-aikaisesti. Jotkut työkalut, joita käytän suorittimen tarkastelussa, ovat top andsar.
Top-apuohjelma antaa sinulle reaaliaikaisen katsauksen palvelimen tapahtumiin. Oletuksena, kun ylhäältä käynnistetään, se näyttää aktiivisuuden kaikille prosessoreille:
Tätä näkymää voidaan muuttaa painamalla numeronäppäintä 1, joka lisää kunkin suorittimen käyttöarvoja koskevia tietoja:
Tässä näkymässä on huomioitava keskimääräinen kuormitus (näytetään ylärivin oikealla puolella) ja kunkin suorittimen arvo:
us: Tämä prosenttiosuus edustaa käyttäjän processs.sy:n käyttämän CPU:n määrää. Tämä prosenttiosuus edustaa järjestelmän prosessien kuluttaman CPU:n määrää. melko hyvä, reaaliaikainen käsitys siitä, ovatko CPU:t sidottu käyttäjän prosesseihin vai järjestelmäprosesseihin.Kuormituksen keskiarvon aidosti selittämiseen tarvitaan oma artikkeli. Tämän artikkelin tarkoituksia varten puhun yleisistä asioista. Kolme kuormituksen keskiarvoa vasemmalta oikealle edustavat minuutin, viiden minuutin ja 15 minuutin keskiarvoja. Hyvin yleisesti ottaen, jos näet yhden minuutin keskiarvon ylittävän fyysisten suorittimien määrän, järjestelmä on todennäköisesti CPU-sidottu.
Huomaa: Brendan Greggin perusteellisesta tutkimuksesta saat lisätietoja keskimääräisestä kuormituksesta ja siitä, miksi se on joidenkin mielestä typerä luku.
Suorittimen historiallisten suorituskykytietojen saamiseksi luotan sar-komentoon, jonka tarjoaa sysstat-paketti. Useimmissa Linuxin palvelinversioissa sysstat on asennettu oletuksena, mutta jos se ei ole, voit lisätä sen distrosi paketinhallinnan avulla. Sar-apuohjelma kerää järjestelmätietoja 10 minuutin välein cron-työn kautta, joka sijaitsee /etc/cron.d/sysstat (CentOS 7.6). Näin voit tarkistaa kaikki "Big 3" sarilla.
Huomaa: jos olet juuri asentanut sar:n tämän artikkelin seuraamiseksi, anna komennolle ensin jonkin aikaa tallentaa tiedot.
Komento sar -u antaa tietoja kaikista järjestelmän suorittimista keskiyöstä alkaen:
Kuten alkuun, tärkeimmät asiat, jotka kannattaa tarkistaa tässä ovat %user, %system, %iowait ja %idle. Nämä tiedot voivat kertoa, kuinka kauan palvelimella on ollut ongelmia.
Kaiken kaikkiaan sar-komento voi tarjota paljon tietoa. Koska tämä artikkeli selittää vain nopean tarkistuksen siitä, mitä palvelimella tapahtuu, tutustu man sar -sovellukseen, jotta voit jakaa nämä tiedot edelleen.
RAM-muistin suorituskyvyn tarkistamiseksi käytän sar -r-komentoa, joka näyttää kyseisen päivän muistin käytön:
Tärkein huomioitava RAM-muistin käytössä on %memused ja %commit. Lyhyt sana %commit-kentästä: Tämä kenttä voi näyttää yli 100 %, koska Linux-ydin ylisitouttaa RAM-muistin rutiininomaisesti. Jos %commit on jatkuvasti yli 100 %, tämä tulos voi olla merkki siitä, että järjestelmä tarvitsee lisää RAM-muistia.
Levyn I/O-suorituskykyä varten käytän komentoa sar -d, joka antaa levyn I/O-ulostulon käyttämällä vain laitteen nimeä. Saadaksesi laitteiden nimet, käytä sar -dP:tä:
Tässä lähdössä %util ja %await tarkastelu antaa hyvän kokonaiskuvan järjestelmän levyn I/O:sta. %util-kenttä on melko itsestään selvä: se on kyseisen laitteen käyttö. Odotuskenttä sisältää ajan, jonka I/O viettää ajoittimessa. Await mitataan millisekunteina, ja ympäristössäni olen nähnyt, että kaikki yli 50 ms alkaa aiheuttaa ongelmia. Tämä kynnys voi vaihdella ympäristössäsi.
Jos jokin näistä komennoista näyttää ongelman, voit palata katsomaan, milloin palvelinongelmat alkoivat komennolla sar {-u, -r, -d, -dP} -f /var/log/sa/sa ( jossa XX on sen kuukauden päivä, jota haluat etsiä).
Tässä vaiheessa minulla on yleensä hyvä käsitys siitä, mitä palvelimella tällä hetkellä tapahtuu ja mitä on tapahtunut viimeisen 48 tunnin aikana. Vastaan käyttäjälle tietoisemmilla vastauksilla. Esimerkki: "En näe mitään merkkejä isännän hitaudesta viimeisten 24 tunnin aikana. Yritä käyttää uutta putty-profiilia ssh:n syöttämiseen ja ilmoita minulle, jos ongelmat jatkuvat."
Toinen esimerkki: "En näe tällä hetkellä mitään ongelmia aiheuttavan tässä isännässä, mutta huomasin jonkin verran korkeamman suorittimen kuormituksen $time. Oliko se silloin, kun näit ongelmia? Jos on, yritä nyt ja kerro minulle, jos jatkat nähdä ongelmia."
Ymmärrät idean. Tietojen saaminen tarkastelemalla alkuperäistä kirjautumista ja suorittamalla sitten muutama sar-komento, joiden suorittaminen kestää yleensä alle 10 minuuttia, auttaa ratkaisemaan enemmän kysymyksiä ja saavuttamaan ratkaisun nopeammin.
PREV: sys.servers (Transact-SQL) - SQL Server | Microsoft Docs
NEXT: Jyrkkä aloittelijan opas: Vinkkejä ja temppuja valloittamaan ...