GNU/Linux >> Znalost Linux >  >> Linux

Vyhodnocení čekání CPU I/O na Linuxu

Při vyhodnocování těchto čísel musíte být opatrní.

  1. IOWait souvisí, ale ne nutně lineárně koreluje s aktivitou disku.
  2. Počet procesorů, které máte, ovlivňuje vaše procento.
  3. Vysoký IOWait (v závislosti na vaší aplikaci) není nezbytně naznačit pro vás problém. Případně malý IOWait pro vás může znamenat problém. V podstatě se to scvrkává na to, jaký úkol čeká.

IOWait je v tomto kontextu měřítkem času za dané období, který CPU (nebo všechny CPU) strávil nečinný, protože všechny spustitelné úlohy čekaly na provedení IO operace.

Ve vašem příkladu, pokud máte 20 CPU, přičemž jedna úloha skutečně udeří do disku, tato úloha (ve skutečnosti) tráví 100 % svého času v IOWait, následně CPU, na kterém tato úloha běží, tráví téměř 100 % svého času v IOČekejte. Pokud je však 19 dalších CPU efektivně nečinných a nevyužívají tento disk, hlásí 0 % IOWait. To má za následek průměrné procento IOWait 5 %, i když ve skutečnosti, pokud byste se podívali na využití vašeho disku, mohlo by to hlásit 100 %. Pokud je pro vás aplikace čekající na disku kritická – těchto 5 % je poněkud zavádějících, protože úloha v úzkém hrdle pravděpodobně vykazuje mnohem vyšší problémy s výkonem než zpomalení o 5 %.

čeká skoro tolik procesů CPU, než pracuje? (=> špatné)

Pravděpodobně si pamatujte, že z větší části CPU spouštějí úlohy a úlohy jsou tím, co požaduje IO. Pokud jsou dvě samostatné úlohy zaneprázdněny dotazováním na stejný disk na dvou samostatných CPU, u obou CPU to bude 100% IOWait (a v příkladu 20 CPU celkový průměr IOWait 10%).

V zásadě pokud máte mnoho úloh, které vyžadují IO, zejména ze stejného disku, a navíc je tento disk 100% využit (viz iostat -mtx ), pak je to špatné.

pracovní procesy čekají 5,0 % svého plánu realizace? (=> v tomto případě dobře)

Ne. Pracovní procesy téměř jistě čekají na plný úvazek na IO. Je to jen průměrný případ zprávy („ostatní procesory nejsou zaneprázdněny“) falšuje procento nebo skutečnost, že CPU musí spouštět mnoho úloh, z nichž mnohé nemusí provádět IO.

Obecně platí, že na systému s více CPU je pravděpodobně třeba prozkoumat procento IOWait, které se rovná počtu CPU, které jste vydělili 100.

něco jiného

Viz výše. Všimněte si však, že aplikace, které provádějí velmi těžký zápis, jsou omezeny (přestaňte používat zpětný zápis, začněte zapisovat přímo na disk). To způsobí, že tyto úlohy produkují vysoké IOWait, zatímco jiné úlohy na stejném CPU zapisují na stejný disk nikoli. Takže výjimky existují.

Všimněte si také, že pokud máte 1 CPU vyhrazený pro spouštění 2 úloh, jeden je těžký IO čtení/zápis a druhý je náročný na CPU, pak CPU v tomto případě ohlásí 50% IOČekejte, pokud máte 10 podobných úloh, by bylo 10 % IOWait (a příšerné zatížení), takže číslo lze nahlásit mnohem nižší, než by ve skutečnosti mohlo být problémem.

Myslím, že se opravdu musíte podívat na iostat -mtx získat nějaké metriky využití disku a pidstat -d Chcete-li získat nějaké metriky pro jednotlivé procesy, pak zvažte, zda aplikace zasahující tyto disky tímto způsobem pravděpodobně způsobí problém, nebo zda problém způsobí jiné potenciální aplikace, které tyto disky zasáhnou.

Metriky CPU skutečně fungují jako indikátory základních problémů, jsou obecné, takže chápou, kde mohou být příliš obecné je dobrá věc.


Linux
  1. Naučte se základy toho, jak funguje přesměrování I/O (vstup/výstup) v systému Linux

  2. Jak zjistit, zda je disk SSD nebo HDD v Linuxu

  3. Linux – Jak monitorovat diskový vstup/výstup v konkrétním adresáři?

  1. Hlášení I/O z příkazového řádku Linuxu

  2. Linux – Zpomalit kopírování disku/disku?

  3. Migrujte na server pro obecné účely nebo I/O server

  1. Kali Linux v cloudu DigitalOcean

  2. Jak děláte neblokující I/O konzoly na Linuxu v C?

  3. Jak zastavit „nepřerušitelný“ proces v Linuxu?