• Digitální příslušenství
  • Server
  • Digitální život
  • Zásady ochrany osobních údajů
  • Kontaktujte nás
  1. Domov
  2. Článek
  3. Odstraňování problémů s pomalými servery: Jak zkontrolovat CPU, RAM a disk...

Odstraňování problémů s pomalými servery: Jak zkontrolovat CPU, RAM a disk...

Rsdaa 09/01/2022 1720

Pokud pracujete se správcem systému dostatečně dlouho, viděli jste obávané incidenty typu „Server je pomalý“. Dlouhou dobu by mi z těchto typů incidentů hrozila díra v žaludku. Jak sakra řešíš něco tak subjektivního? „Zpomalení“ běžného uživatele může být způsobeno pouze jinými procesy (naplánovanými nebo ne), které běží a spotřebovávají více zdrojů než obvykle, nebo může být se serverem něco v nepořádku.

Když jsem poprvé začal pracovat jako systémový správce, okamžitě jsem odpověděl: "Potřebuji o tom více informací." Uživatel obvykle není schopen poskytnout žádné další informace, protože neví, co běží v zákulisí, nebo jak vysvětlit, co vidí, jinak než „je to jen pomalé“. V dnešní době, než uživateli vůbec odpovím, zkontroluji pár věcí.

Počáteční přihlášení

Po přihlášení k hostiteli můžete zjistit spoustu věcí. Můžete se vůbec přihlásit? Je přihlášení pomalé nebo visí? Příkaz ssh má tři úrovně ladění, z nichž každá vám poskytne nepřeberné množství informací ještě předtím, než budete v systému. Chcete-li povolit ladění, stačí přidat další v k volbě -v. Například ladění třetí úrovně, které používám výhradně já, by bylo:

[~]$ ssh -vvv hostname.domain.com

Velká 3 (neboli CPU, RAM a diskový I/O)

Nyní se podíváme na tři největší příčiny serveru zpomalení: CPU, RAM a disk I/O. Využití CPU může způsobit celkovou pomalost hostitele a potíže s včasným dokončením úkolů. Některé nástroje, které používám při pohledu na CPU, jsou top andsar.

Kontrola využití procesoru pomocí top

Nejvyšší nástroj vám poskytuje pohled v reálném čase na to, co se děje se serverem. Ve výchozím nastavení se při horním spuštění zobrazuje aktivita všech CPU:

Toto zobrazení lze změnit stisknutím číselné klávesy 1, která přidá další podrobnosti týkající se hodnot využití pro každý procesor:

Některé věci, které je třeba v tomto zobrazení hledat, je průměrná zátěž (zobrazená na pravé straně horního řádku) a hodnota následujících pro každý CPU:

us: Toto procento představuje množství procesoru spotřebovaného uživatelskými procesy.sy: Toto procento představuje množství procesoru spotřebovaného systémovými procesy.id: Toto procento představuje nečinnost každého procesoru.

Každá z těchto tří hodnot vám může poskytnout poměrně dobrá představa v reálném čase o tom, zda jsou CPU vázány uživatelskými nebo systémovými procesy.

K opravdovému vysvětlení průměrné zátěže by byl potřeba samostatný článek. Pro účely tohoto článku budu mluvit obecně. Tři průměrné hodnoty zatížení zleva doprava představují jednominutové, pětiminutové a 15minutové průměry. Opět, velmi obecně řečeno, pokud vidíte, že jednominutový průměr překračuje počet fyzických CPU, které máte, pak je systém s největší pravděpodobností vázán na CPU.

Poznámka: Další informace o průměrné zátěži a o tom, proč si někteří lidé myslí, že je to hloupé číslo, naleznete v hloubkovém výzkumu Brendana Gregga.

Kontrola všech "Big 3" pomocí sar

U historických údajů o výkonu CPU se spoléhám na příkaz sar, který poskytuje balíček sysstat. Na většině serverových verzí Linuxu je sysstat nainstalován ve výchozím nastavení, ale pokud tomu tak není, můžete jej přidat pomocí správce balíčků vašeho distribuce. Obslužný program sar shromažďuje systémová data každých 10 minut prostřednictvím úlohy cron umístěné v /etc/cron.d/sysstat (CentOS 7.6). Zde je návod, jak zkontrolovat všechny "Big 3" pomocí sar.

Poznámka: Pokud jste si právě nainstalovali sar, abyste mohli postupovat podle tohoto článku, dejte příkazu čas na zaznamenání dat.

Příkaz sar -u vám poskytuje informace o všech CPU v systému, počínaje půlnocí:

Stejně jako u top, hlavní věci, které je třeba zde zkontrolovat, jsou %user, %system, %iowait a %idle. Tyto informace vám mohou říci, jak daleko do minulosti měl server problémy.

Celkově může příkaz sar poskytnout mnoho informací. Vzhledem k tomu, že tento článek vysvětluje pouze rychlou kontrolu toho, co se děje na serveru, podívejte se na man sar, abyste tyto informace ještě více rozebrali.

Pro kontrolu výkonu paměti RAM používám sar -r, který vám poskytne využití paměti za daný den:

Hlavní věc, kterou je třeba hledat při využití RAM, je %memused a %commit. Krátké slovo o poli %commit: Toto pole může ukazovat více než 100 %, protože linuxové jádro běžně přetěžuje RAM. Pokud je %commit trvale nad 100 %, tento výsledek může být indikátorem toho, že systém potřebuje více RAM.

Pro výkon diskových I/O používám sar -d, který vám poskytne diskový I/O výstup pouze pomocí názvu zařízení. Chcete-li získat název zařízení, použijte sar -dP:

Pro tento výstup vám pohled na %util a %await poskytne dobrý celkový obrázek o diskových I/O v systému. Pole %util je docela samovysvětlující: Jde o využití tohoto zařízení. Pole čekání obsahuje dobu, kterou I/O stráví v plánovači. Čekání se měří v milisekundách a v mém prostředí jsem viděl, že cokoli delší než 50 ms začíná způsobovat problémy. Tento práh se může ve vašem prostředí lišit.

Pokud některý z těchto příkazů ukazuje problém, můžete se vrátit a zjistit, kdy začaly problémy se serverem, pomocí sar {-u, -r, -d, -dP} -f /var/log/sa/sa ( kde XX je den v měsíci, který chcete vyhledat).

V tuto chvíli mám obvykle dobrou představu o tom, co se aktuálně děje na serveru a co se děje za posledních zhruba 48 hodin. Odpovím uživateli informovanějšími odpověďmi. Například: „Za posledních 24 hodin nevidím žádné známky zpomalení hostitele. Zkuste pro ssh použít nový profil putty a dejte mi vědět, pokud problémy přetrvávají.“

Další příklad: "Na tomto hostiteli nevidím nic, co by v současné době způsobovalo problémy, ale zaznamenal jsem vyšší zatížení CPU $time. Bylo to tehdy, když jste viděli problémy? Pokud ano, zkuste to prosím nyní a dejte mi vědět, jestli budete pokračovat vidět problémy."

Dostanete nápad. Mít informace poskytnuté pohledem na počáteční přihlášení a následným spuštěním několika příkazů sar, jejichž spuštění mi obvykle zabere méně než 10 minut, hodně pomůže odvrátit více otázek a rychleji dosáhnout řešení.


PREV: sys.servers (Transact-SQL) - SQL Server | Dokumenty Microsoft

NEXT: Strmý průvodce pro začátečníky: Tipy a triky pro dobytí...

Populární články

Žhavé články

Navigační seznamy

Zpět na začátek