2010/01/29

i/o tuning - aix

Tym razem kilka informacji na temat strojenia i/o w systemie Aix (5.3 i 6.1). (Pozwolę sobie przekopiować część ogólnych informacji z poprzedniego wpisu z tej kategorii.)

- długość kolejki niepotwierdzonych operacji i/o (outstanding i/o queue depth)

Każde zlecenie z systemu operacyjnego do macierzy dyskowej wymaga potwierdzenia. Zawiera ono informacje o statusie zakończenia operacji i/o. Nie jest jednak powiedziane, że system musi czekać z wysłaniem nowego zlecenia na potwierdzenie zakończenia poprzedniego. System posiada kolejkę, w której umieszcza zlecone operacje i/o. Czekają one tam na potwierdzenie ich wykonania. Długość tej kolejki określa ile zleceń system może wysłać. (tu przeczytasz o tym więcej).
W systemie AIX kolejkę taką posiadają zarówno poszczególne lun'y jak i kontrolery (scsi, iscsi, fc). Parametry te są atrybutami tych urządzeń. W przypadku lun'ów jest to queue_depth. Jego wartość sprawdzamy tak:
# lsattr -El hdisk??
(...)
queue_depth 16 Queue DEPTH True
(...)
a zmieniamy tak:
# chdev -l hdisk?? -a queue_depth=??
Atrybut odpowiedzialny za długość kolejki na kontrolerze ma inną nazwę - num_cmd_elems. Aby sprawdzić jego wartość:
# lsattr -El fcs??
(...)
num_cmd_elems 200 Maximum number of COMMANDS to queue to the adapter True
(...)
Przy zmianie:
# chdev -l fcs?? -a num_cmd_elems=??
Zmiany obu tych atrybutów wymagają zamknięcia dostępu do modyfikowanych urządzeń - umount systemów plików, varyoff na grupach volumenowych.
Długość kolejki decyduje o ilości operacji i/o na sekundę (iops) jaką może zlecić system operacyjny. Zwiększanie go nie ma sensu jeżeli macierz nie jest w stanie wykonać tylu IOPS. Często jednak macierz może więcej, ale system jest ograniczany krótką kolejką. Widać to po różnicy w czasie wykonania operacji i/o na macierzy (szybko) i czasie wykonania operacji i/o w systemie (długo). W takiej sytuacji wydłużenie kolejki powinno zwiększyć wydajność.


Brak komentarzy: