<max_server_memory_usage_to_ram_ratio>0.9</max_server_memory_usage_to_ram_ratio>
насколько я понимаю клик может занимать под кеш 90% физической памяти.
На сервере 64Гб памяти
# free -h
total used free shared buff/cache available
Mem: 62Gi 28Gi 8,9Gi 376Mi 25Gi 32Gi
Swap: 0B 0B 0B
Если смотреть top то клик занимает всего лишь 45% памяти (т.е. примерно 32ГБ)
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
30224 clickho+ 20 0 116,7g 28,4g 82152 S 7,7 45,2 11265:25 clickhouse-serv
Предположим ему больше и не нужно.
При этом запрос (достаточно мутный, т.к. формируется из какой-то ORM) выбирает 4ГБ данных но выполняется 10 сек!!!
По моей логике, 4ГБ должны лежать в кеше и запрос уже не должен читать с диска и должен выполняться быстрее 10сек.
Или я что-то не понимаю?
не под кеш. А для выполнения запросов. КХ использует кеш системный У вас в дисковом кеше buff/cache 25Gi RES -- 28,4g это то что сожрал КХ для запросов и индексов >выполняется 10 сек!!! это вообще ничего не значит, может упираться в нехватку cpu / сети ...
ну CPU навряд ли, я еще проверю, но там 4 ядра, а максимальная загрузка (судя по top) при выполнении запроса достигала 288% - это же не все 4 ядра, а на этой VM больше вообще ничего нет и там потребление CPU в покое около нуля. А вот сеть это нужно проверить дополнительно. Хотя я больше на запрос грешу, ORM конечно удобно для разработки, но оно порой такие монструозные запросы генерит...
Обсуждают сегодня