кластер, 4 ноды, 2 шарда по 2 ноды в каждом. Работает на оч хорошем железе, запас по ресурсам есть большой.
Запросы аналитические, написаны хорошо и работают быстро, в среднем 20-30мс на запрос. Рейт запросов - высокий, порядка 400rps на каждую ноду (тк данные пишутся и читаются через destributed таблицу, бизнесовых rps - порядка 100 на ноду и 400 на кластер, соотв-но). Проблема в том, что по мере роста rps, скорость запросов - деградирует драматически. Те увеличение rps в 2 раза - дает деградацию запросов в 5 раз, до 100-150ms. Увеличение рейта в 4 - 5 раз, деградирует запросы в более 10-15 раз. При этом, самое интересное, что сервера не перегружены ни по сpu, памяти, ни по IO, латенси от дисков не более 1-2мс, очередей нет. Отдельные сервера с Зукипером также не нагружены.
Вопрос в следующем - настолько высокий rps - типичное ли использование КХ и стоит думать продолжать копать в сторону оптимизации кластера через параметры, или архитектурно КХ плохо подходит под такой паттерн нагрузки и стоит думать в сторону снижения rps ? Версия 19.6
Ну как минимум я бы рекомендовал переехать на более новый КХ. А в целом он не совсем подходит для высоких RPS. Была статья от ребят с altinity они там тестировали производительность, но достаточно условно, так как там выполнялся запрос SELECT 1.
принял. Спасибо большое! Я также думал об обновленнии
в 19.16 на самом деле возможно у вас запросы выстраиваются в очередь, потому что в КХ есть параметр 100 запросов одновременно, все что больше ставить в очередь до 500мс. в новых версиях 500мс поменяли на 0 это неестественный RPS для OLAP, естественный RPS это 5 ну 10. удивительно что КХ работает с таким RPS, но в принципе можно и больше Почему/для чего у вас такой RPS ?
да, у нас выкручен этот параметр в 200. и даже пробовали 500. Но особого эффекта на скорость запросов нет. Я также говорю нашей разработке что нужно снижать rps, менять бизнес логику. Просто хотел еще услашать подверждение, опытных специалистов. Спасибо
а чем вы ходите в КХ? каким API ? на каждый запрос свой коннект?
через chproxy (который также не нагружен). Приложения на java
померяйте используя clickhouse-benchmark -c 100 потом попробуйте без chproxy попробуйте через пул коннектов в джава
Обсуждают сегодня