Jak rozpoznać ciężki zapis na dysk?

9

Mam ten problem z serwerem z uruchomioną aplikacją CakePHP. Serwer jest niesamowicie wolny, najpierw pomyślałem, że to problem z aplikacją, ale potem znalazłem ciągłe zapisywanie na dysku 5-6 MB / s.

Jak najłatwiej znaleźć przyczynę tak ciężkiego zapisu?

Na serwerze działa Gentoo.

Jakub Arnold
źródło

Odpowiedzi:

15

Zainstaluj iotop i sprawdź, który program to robi.

wazoox
źródło
17

Jako autor Dstat wskazałbym na dodatkowe opcje. Możesz łatwo zobaczyć, jaki proces pochłania największą przepustowość we / wy:

dstat -ta --top-bio

lub dstat -ta --top-io

Pierwszy to górny blok I / O, a drugi najwyższy I / O (w tym buforowany). Może to pomóc w sprawdzeniu poprawności, jeśli tego się spodziewasz (zarówno jako konsument, jak i konsumpcja).

Istnieje kilka innych wtyczek, które mogą pomóc w określeniu stopnia wykorzystania dysków:

dstat -tdf --disk-util

Więc jeśli masz wąskie gardła we / wy, to powie ci, które dyski są zaangażowane, abyś mógł zobaczyć, czy można coś z tym zrobić na tym końcu.

W przypadku rozwiązywania problemów z konkretnymi (sieciowymi) systemami plików można użyć innych wtyczek, aby uzyskać więcej informacji na temat tych systemów plików. Dstat ma również wtyczki do innych wskaźników (procesora, maszyny wirtualnej, wirtualizacji itp.). W zależności od potrzeb wizualizacji możesz pisać własne wtyczki lub modyfikować istniejące wtyczki, aby pokazać dokładnie to, czego potrzebujesz do korelacji.

Jeśli jednak potrzebujesz pomocy, chcesz się przyłączyć lub masz świetny nowy pomysł, skontaktuj się ze mną, aby zobaczyć, jak możemy postępować ...


źródło
3

Możesz użyć fantazyjnego narzędzia dstat

Jurij
źródło
3

Ze strony podręcznika dstat - „dstat -M czas, procesor, sieć, dysk, sys, ładowanie, proc, topcpu”. dstat jest instalowany z większością dystrybucji, więc jest szybszy niż instalacja iotop.

Saurabh Barjatiya
źródło
1

Możesz zrzucić działania dysku (wraz z generującym go pid) w syslog za pomocą następującego polecenia:

echo 1 > /proc/sys/vm/block_dump

Przed wydaniem tego upewnij się, że logi systemowe nie znajdują się na urządzeniu blokowym, w przeciwnym razie skończysz w nieskończonej pętli.

asdmin
źródło