|
Измерить производительность дисковой подсистемы на виртуалке
|
|||
---|---|---|---|
#18+
Добрый день! Подскажите, как корректно измерить производительность дисковой подсистемы на виртуальной машине? Измерить iops, latency, какая скорость записи/чтения, найти самый медленный диск в массиве, и пр. Доступа к среде vmware нет. Виртуалка используется в качестве сервера СУБД. Как на основе iostat/iotop/sar/dd/rsync выдать нужную мне статитистику мне не понятно. Подскажите, пожалуйста. Данные прилагаю. iostat Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
iotop Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
sar -d Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42.
Попробовал создать файлы с помощью dd Для записи 10 ГБ на разделе /data LVM (из множества дисков) потребовалось 57 секунд , и скорость 188 МБ/с . Но это не даёт ответ на вопрос, какой из дисков наименее производительный, и в целом эти 188 МБ/с это быстро или медленно? Плохо или хорошо? Повод сказать, что дисковая полка имеет низкую производительность? Код: c# 1. 2. 3. 4. 5. 6.
Для примера, решил проверить работу dd на другом сервере СУБД и получил скорость 631 МБ/с и 17 секунд на создание файла! Код: pascal 1. 2. 3. 4. 5. 6.
rsync --progress Файл 10 ГБ копировался 6 минут 20 секунд со средней скоростью 26,92 МБ/с Код: sql 1. 2. 3. 4. 5. 6.
Какой вывод можно сделать из всего этого? Какой диск самый медленный? Есть ли проблема с дисковой полкой? Какая средняя скорость чтения/записи по дискам? Какое время ожидание latency? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2018, 14:27 |
|
Измерить производительность дисковой подсистемы на виртуалке
|
|||
---|---|---|---|
#18+
Запустил измерение диска с помощью утилиты fio. Если я правильно понял, то средняя latency составило 16,5 мс, максимальная 14,5 сек. Верно ли утверждение, что latency > 10ms повод сказать, что дисковая полка не справляется с нагрузкой? clat (usec): min=2 , max=1468.1K, avg=16563.54 , stdev=25076.81 lat (usec): min=33 , max=1469.6K, avg=16578.11 , stdev=25077.12 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2018, 10:29 |
|
Измерить производительность дисковой подсистемы на виртуалке
|
|||
---|---|---|---|
#18+
У меня нет настроения изучать эти данные. Но в комплект СУБД Oracle входит программа Orion, предназначенная специально для этого. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2018, 10:48 |
|
Измерить производительность дисковой подсистемы на виртуалке
|
|||
---|---|---|---|
#18+
BigBuddaЗапустил измерение диска с помощью утилиты fio. отличный выбор. Если я правильно понял, то средняя latency составило 16,5 мс, максимальная 14,5 сек. Верно ли утверждение, что latency > 10ms повод сказать, что дисковая полка не справляется с нагрузкой? [/quot] Кому? Да всем пофиг. Это вопрос лишь взаимного обмана на базаре. Если вас устраивает - платите. Если не устраивает - делайте вид что заплатите и уходите. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2018, 01:12 |
|
Измерить производительность дисковой подсистемы на виртуалке
|
|||
---|---|---|---|
#18+
Несколько моментов: 1. Мерять dd скорость записи без флага direct - это мерять скорость записи из памяти в память. 2. Современные промышленные СУБД используют преимущественно асинхронный ввод-вывод (запросы на чтение-запись генерятся в одном потоке, события от ядра Linux - ловятся в другом). Параллельно 'в пути' могут находиться до n bio-реквестов, где n=/sys/block/<dev>/queue/nr_requests. n=128 (by default) 3. Как быстро реквесты достигнут диска зависит от элеватора Linux (он же планировщик ввода-вывода), т.к. именно он решает, когда отправить bio драйверу диска. Дефолтный CFQ зачастую не самый лучший для СУБД. Для SSD/виртуалки вообще лучше использовать noop - т.е. обычную FIFO-очередь 4. fio вы запускали со стандартной глубиной очереди 32, которая в 4 раза меньше очереди ядра. При этом даже при такой глубине очереди самый несчастливый блок у вас писался за 1,4 секунды, что говорит о том, что они задерживаются на уровне гипервизора 5. 95.00th=[58624], этот 95-й персентиль говорит о том, что почти все реквесты у вас будут исполняться с задержкой до почти 59мс, что много даже для шпиндельного диска Вот, например, для bare-metal (7200, SAS): clat percentiles (usec): | 1.00th=[ 3952], 5.00th=[ 5792], 10.00th=[ 7200], 20.00th=[ 8896], | 30.00th=[10304], 40.00th=[11456], 50.00th=[12608], 60.00th=[13760], | 70.00th=[15168], 80.00th=[16768], 90.00th=[18816], 95.00th=[20608], | 99.00th=[23424], 99.50th=[24192], 99.90th=[26752], 99.95th=[28032], | 99.99th=[30080] Но все вышесказанное ничего вам не даст, пока вы не знаете паттерн ввода-вывода вашей субд. Если есть уже продуктивная и планируете обновлять железо (пусть и виртуальное) - тогда проще. Иначе - пальцем в небо. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2018, 17:34 |
|
|
start [/forum/topic.php?fid=25&msg=39689315&tid=1481275]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 277ms |
total: | 410ms |
0 / 0 |