Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Тихо что-то. "Хозяйке на заметку" - работа БД с профилем нагрузки "преимущественно запись"
|
|||
|---|---|---|---|
|
#18+
Вроде банальность, но вот всплыло, решил поделиться. Есть у нас база со странным профилем нагрузки "преимущественно запись". Некоторое приложение пишет в N потоков в базу (фактически - лог). Понятно, что самым узким местом в такой БД будет журналирование. По крайней мере за CPU следить легко, dirty pages из буферпулов чистятся быстро, а вот запись в журналы транзакций (да ещё при условии, что разработчики "пока не научились" писать по нескольку событий за транзакцию) будет сериализовать всю нагрузку и будет являться bottleneck'ом. Возник вопрос - достаточно ли ресурсов и какой запас по производительности. Для быстрого взгляда "что там вообще с некоторой незнакомой БД" вполне хороша (с 9.7) процедура: Код: sql 1. На исследуемой БД в числе прочего честно сказала, что 80-90% Wait time - LOG_DISK_WAIT_TIME. Из кэша запросов было видно, что всё это время приходится на коммиты (коммит в кэш естественным образом не попадает). Общее время LOG_DISK_WAIT_TIME за минуту наблюдений - в конкретном примере - 60-65 секунд. Много это или мало? Да бог его знает (неизвестно, сколько коммитов работали в какой-то момент конкурентно, т.е. суммировалось ли время по всем ожидающим в параллель коннектам). Та же история с CLIENT_IDLE_WAIT_TIME. За счёт наличия простаивающих коннектов (создан пул с большим запасом) параметр абсолютно неинформативен. Решение - зайти с другой стороны. Смотреть изменение log_write_time_s в SYSIBMADM.SNAPDB за интервал времени (ту же минуту). Код: sql 1. 2. 3. 4. 5. 6. Когда общее время записи в журнал велико, значит уже приплыли/находимся на грани. По факту при 40 секундах записи в журналы в минуту - уже упёрлись по производительности ввода-вывода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 14:34 |
|
||
|
Тихо что-то. "Хозяйке на заметку" - работа БД с профилем нагрузки "преимущественно запись"
|
|||
|---|---|---|---|
|
#18+
CawaSPb, Начиная с 9.7 можно анализировать "куда уходит время" для разных сущностей с помощью функций: MON_FORMAT_XML_*_TIMES_BY_ROW Hierarchy of time-spent monitor elements Они выдают информацию в виде: родительская_мерика, дочерняя_метрика, счетчики но, немонго подшаманив, можно получать информацию в более наглядном виде запросом: Пример Код: plaintext 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. Такие деревья можно получать по таким объектам (там у всех есть xml поле details): Код: sql 1. 2. 3. На 9.7 это: MON_GET_ACTIVITY_DETAILS MON_GET_CONNECTION_DETAILS MON_GET_PKG_CACHE_STMT_DETAILS --MON_GET_DATABASE_DETAILS (начиная с 10.5) --MON_GET_ROUTINE_DETAILS (начиная с 10.1) MON_GET_SERVICE_SUBCLASS_DETAILS MON_GET_UNIT_OF_WORK_DETAILS MON_GET_WORKLOAD_DETAILS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 15:41 |
|
||
|
Тихо что-то. "Хозяйке на заметку" - работа БД с профилем нагрузки "преимущественно запись"
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, Штуки полезные, спасибо! Но для данного случая не особо помошники. Там, вроде, везде идёт накопительным образом log_disk _wait_ time, который интересен в разрезе конкретного коннекта/сервис класса/... ("сколько мы ждём"), но в своей составляющей фактически имеет "неизвестный множитель" - log_write_time*" среднее число параллельно исполняющихся коммитов ". В то же время именно запись в лог строго серализуется и log_write_time (доступный в SNAPDB) в отличии от многих других параметров не может быть больше фактического времени наблюдения (для однонодовых конфигураций). PS Спасибо за рекомендации. "Всё получилось"! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2015, 18:57 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=39028699&tid=1600751]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
79ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 15ms |
| total: | 189ms |

| 0 / 0 |
