Próbuję oszacować wymagania IOPS mojej aplikacji działającej w 32-bitowym CentOS 6.2. Zacząłem przeprowadzać pomiary na maszynie z dyskami SATA i dość mylę różnicę między IOPS a tps mierzonymi przez sar.
Według wikipedii dysk SATA powinien wykonać 75-100 IOPS. wydaje się, że narzędzie ioping potwierdza to w przypadku testu dostępu losowego:
# ./ioping -R /dev/sda
--- /dev/sda (device 931.0 Gb) ioping statistics ---
279 requests completed in 3.0 s, 92 iops, 371.3 kb/s
min/avg/max/mdev = 2.7 ms / 10.8 ms / 130.8 ms / 7.9 ms
Ale wartości tps wytwarzane przez sar są znacznie wyższe (/ dev / sda):
# iostat 1
avg-cpu: %user %nice %system %iowait %steal %idle
0.17 0.00 2.02 14.86 0.00 82.96
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 559.00 0.00 142600.00 0 142600
dm-0 18433.00 0.00 147464.00 0 147464
dm-1 0.00 0.00 0.00 0 0
dm-2 0.00 0.00 0.00 0 0
Tak naprawdę nie ma znaczenia, że to obciążenie jest sekwencyjne (dd z różnymi rozmiarami bloków) lub losowy dostęp (ioping), wartość jest nadal taka sama. Myślałem, że tps to właściwie IOPS i spodziewałbym się, że spadnie z przeniesionymi większymi fragmentami.
Co dokładnie oznacza wartość tps? A jak to się ma do IOPS?
linux
performance
hard-drive
iops
sar
pystole
źródło
źródło
Odpowiedzi:
Transakcje to pojedyncze polecenia IO (blok pobierania / blok zapisu), które są zapisywane na dysku RAW (w twoim przykładzie dm-0). Jądro linuxa próbuje uporządkować te polecenia w lepszej sekwencji lub próbuje skompresować je w bardziej wydajne polecenia (na przykład: pobierz dwa bloki jednocześnie zamiast jednego bloku i uzyskaj kolejny blok zaraz po tym). Są to transakcje, które wychodzą na kontroler dysku (tps dla sda).
Dobrzy kontrolerzy mają własną logikę, która jeszcze bardziej zmniejsza rzeczywistą liczbę transakcji.
Transakcją może być polecenie SCSI „zapisz 2 GB do crontollera 1 target 2 lun 3, zaczynając od sektora 22). Jak widać, nie można tego bezpośrednio skorelować z liczbami przepustowości.
To, czego szukasz, to trwała szybkość zapisu. Masz tutaj kilka czynników ograniczających:
Domyślam się, że twój system brzmi: Uzyskaj dobry sprzętowy kontroler RAID, który jest w stanie wykonać RAID 10 lub 5 i uzyskać co najmniej 6 szybkich (15k) dysków.
Do użytku profesjonalnego użyj SAS zamiast SATA.
źródło
Należy również pamiętać, że
TPS
wartość reprezentuje odczyty i zapisy, możesz użyć-x
przełącznika do widoku rozszerzonego, w którym odczyty i zapisy są rozdzielone (r / s = odczyt IOPS, w / s = zapis IOPS):źródło