Назад | Перейти на главную страницу

Как измерить прибыль от использования огромных страниц

Я ищу способ измерения влияния / увеличения производительности в случае использования огромных страниц. Например, у меня есть сервер RAM 192 ГБ, из которых 140 ГБ выделены огромными страницами. Я запускаю Postgres с общими буферами на огромных страницах.

Есть ли способ проверить производительность на стороне ядра или libc с помощью perf или eBPF? В идеале было бы лучше видеть изменение задержки (или времени, затрачиваемого на выполнение) определенных функций. Но проблема в том, что я не знаю, какие функции или датчики мне нужно профилировать.

Хорошей отправной точкой является использование perf stat с событиями TLB. Подробности Вот.

Вам не нужны абстрактные тесты для измерения прироста или потери производительности. Запустите наборы тестов, которые лучше всего описывают ваш профиль нагрузки и текущую среду. Если у вас есть тяжелая последовательность PLSQL / хранимых процедур - используйте их в качестве эталона: запускайте с огромными страницами и без них, записывая затраченное время. Это был бы лучший подход. Фактически, если кто то было бы полезно использовать огромные страницы в каком-то профиле нагрузки, который вы не используете, и вы получите статистический нулевой прирост производительности - это означает, что эта настройка бесполезна для вашей задачи.

Что касается огромных страниц, то я очень сомневаюсь, что PostgreSQL принесет значительную пользу. Или в случае любого SQL-сервера вообще. Но я могу ошибаться.