Jeśli jest to system Linux, możesz sam obliczyć użycie dysku - język, w którym chcesz go wdrożyć, użyje tych samych pojęć.
Twoje jądro najprawdopodobniej używa sysfs, dzięki czemu wiele informacji o twoim systemie jest dostępnych pod numerem /sys
; możemy pobrać informacje o naszych pożądanych dyskach w regularnych odstępach czasu i obliczyć wykorzystanie na podstawie różnic między nimi.
W moim systemie będę patrzył na dysk, sda
, twój może się różnić.
$ cat /sys/class/block/sda/stat
42632 25 2045318 247192 6956543 7362278 123236256 23878974 0 3703033 24119492
Teraz, jeśli spojrzymy na the Kernel documentation dla /sys/class/block/<dev>/stat
widzimy następujące opisy dla każdej kolumny wyjścia.
Name units description
---- ----- -----------
read I/Os requests number of read I/Os processed
read merges requests number of read I/Os merged with in-queue I/O
read sectors sectors number of sectors read
read ticks milliseconds total wait time for read requests
write I/Os requests number of write I/Os processed
write merges requests number of write I/Os merged with in-queue I/O
write sectors sectors number of sectors written
write ticks milliseconds total wait time for write requests
in_flight requests number of I/Os currently in flight
io_ticks milliseconds total time this block device has been active
time_in_queue milliseconds total wait time for all requests
Jeśli uruchomić to w harmonogramie cron i diff niektóre czas oczekiwania, możemy zobaczyć, jak długo czekamy na każdej operacji. Będziesz mieć również inne statystyki dotyczące całkowitego IOPS i przepustowości RW. Dokumentacja jest dokładniejsza na każdym polu.
Cokolwiek język zostanie wybrany, deskryptor pliku, aby otworzyć, aby uzyskać informacje na temat dysku będzie
/sys/class/block/<dev>/stat
Jeśli robimy to zgodnie z harmonogramem, możemy wyciągnąć fantazyjne wykresy;)
Cóż, na pewno można uruchamiać wszelkiego rodzaju narzędzia systemowe i oceniać ich wyniki, aby uzyskać wszelkie informacje, które można również narysować jako ludzie. Jednak wątpię, czy to naprawdę pomaga w scenariuszu, który opisujesz. "Dysk twardy" widoczny w zwirtualizowanym systemie jest symulowany. Więc narzędzia mogą pokazywać pewne informacje, ale pytanie brzmi, ile w tym prawdy. Słaba wydajność w takich sytuacjach nie jest związana ze sprzętem systemowym (tak czy inaczej jest wirtualny), ale w całym klastrze sieciowym oferującym wszystkie usługi, których nie można kontrolować ani przewidzieć. – arkascha
Powiedziałbym, że w przypadku problemów z aktualnym rozwiązaniem zdobądź lepszego dostawcę lub lepszą ofertę. Istnieją ogromne różnice między różnymi dostawcami. Często mniej znani dostawcy oferują znacznie lepszą wydajność niż znane firmy. – arkascha
Powinienem dodać, że nie jestem już w projekcie (i wdzięczny, że tak nie jest). System miał bezbłędne opóźnienie odczytu na dysku twardym. Przechodzenie na dysk twardy zamiast do bazy danych faktycznie spowodowało przekroczenie limitu czasu połączeń. To była najgorsza platforma, z jaką kiedykolwiek pracowałem. Skończyło się na przechowywaniu zmiennych konfiguracyjnych w DB, ponieważ szybciej było je uzyskać w ten sposób. –