Jak uzyskać całkowity odczyt i całkowity zapis IOPS w systemie Linux?

32

Jak uzyskać odczyt i zapis IOPS osobno w systemie Linux, za pomocą wiersza polecenia lub w sposób programowy? Zainstalowałem sysstatpakiet.

Powiedz mi, jak mam je osobno obliczyć za pomocą sysstatkomend pakietu.

Czy można je obliczyć za pomocą systemu plików?

np .: /proc lub /syslub/dev

shas
źródło

Odpowiedzi:

46

iostatjest częścią sysstatpakietu, który w razie potrzeby może wyświetlać ogólne pliki IOP lub wyświetlać je oddzielnie odczytując / zapisując.

Uruchom iostatz opcją -d, aby wyświetlić tylko stronę informacyjną urządzenia, a -x, aby uzyskać szczegółowe informacje (osobne statystyki odczytu / zapisu). Możesz określić urządzenie, dla którego chcesz uzyskać informacje, po prostu dodając je później w wierszu polecenia.

Spróbuj uruchomić iostat -dxi spojrzeć na podsumowanie, aby sprawdzić wyniki. Możesz także użyć iostat -dx 1do wyświetlenia ciągłego odświeżania danych wyjściowych, co jest przydatne do rozwiązywania problemów lub monitorowania na żywo,

Używając awk, pole 4 da Ci odczyt / sekundę , podczas gdy pole 5 da ci zapis / sekundę .

Tylko do odczytu / sekundę:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $4; }'

Tylko zapis / s:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $5; }'

Odczytuje / s i zapisuje / s oddzielone ukośnikiem:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $4"/"$5; }'

Ogólnie IOPS (o czym mówi większość ludzi):

iostat -d <your disk name> | grep <your disk name> | awk '{ print $2; }'

Na przykład uruchomienie ostatniego polecenia na moim głównym dysku / dev / sda wygląda następująco:

dan@daneel ~ $ iostat -dx sda | grep sda | awk '{ print $4"/"$5; }' 15.59/2.70

Pamiętaj, że nie musisz być rootem, aby to uruchomić, co czyni go przydatnym dla użytkowników nieuprzywilejowanych.

TL; DR: Jeśli jesteś zainteresowany sda, następujące polecenie da ci ogólne IOPS dla sda:

iostat -d sda | grep sda | awk '{ print $2; }'

Jeśli chcesz dodać IOPS do wszystkich urządzeń, możesz ponownie użyć awk:

iostat -d | tail -n +4 | head -n -1 | awk '{s+=$2} END {print s}'

Daje to wynik w następujący sposób:

dan@daneel ~ $ iostat -d | tail -n +4 | head -n -1 | awk '{s+=$2} END {print s}' 18.88

Daneel
źródło
Dzięki Mr.Dannel jest przydatny. jeśli chcę uzyskać pełny system Odczyt / Zapis IOPS Jak uzyskać?
śr.
kiedy uruchamiam, iostat -dx 1mam taki komunikat Linux 2.6.35.14-106.fc14.i686 (shashi) 08/24/2015 _i686_ (2 CPU) Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 2.46 13.80 2.27 2.03 136.26 123.91 60.53 0.11 25.77 4.43 1.91 dm-0 0.00 0.00 2.35 0.77 93.07 6.11 31.86 0.17 53.73 2.59 0.81 dm-1 0.00 0.00 1.02 2.83 8.14 22.66 8.00 0.83 214.34 0.60 0.23 dm-2 0.00 0.00 1.37 11.89 34.77 95.14 9.80 1.67 126.06 0.84 1.11dla DM-0, DM-1, DM-2 rekurencyjnie powinienem dodać?
shas
Zaktualizowałem odpowiedź ogólnym szablonem i przykładem dla sda. Jeśli po prostu chcesz zobaczyć IOPS dla twojego dysku twardego, użyj tego ostatniego polecenia dla ogólnego IOPS ( iostat -d sda | grep sda | awk '{ print $2; }')
Daneel
Nie, chcę osobno, jak wspomniałeś w 1. odpowiedzi. trochę mylę, dm-*więc zapytałem, muszę wykonać dodawanie na tych partycjach
shas
Ahh, ok Możesz użyć następującego polecenia, aby sprawdzić, jakie jest każde dm-xurządzenie: lvdisplay|awk '/LV Name/{n=$3} /Block device/{d=$3; sub(".*:","dm-",d); print d,n;}'- Zaktualizuję odpowiedź tym, a także dodam wyniki.
Daneel