184 похожих чатов

На скрине график LA по 4м шардам КХ. Подскажите, как

можно найти причину, почему неравномерная нагрузка? На бирюзовый запись не идет, и там понятно. Но почему красный вдруг стал недозагружен, а синий наоборот, в перегруз ушел. Речь идет о нагрузке по 150 LA на 40 ядрах. Т.е. совсем много

25 ответов

10 просмотров

начиная от неправильного шардирования, заканчивая проблемами с выделенными ресурсами на ВМ (если это ВМ) или дисками на железе.

кх не балансирует запросы, если вы все запросы посылаете в один сервер, то так и будет.

Сергей-Худояров Автор вопроса
Denny [Altinity]
кх не балансирует запросы, если вы все запросы пос...

запросы все посылаются через haproxy на сервер на котором отключена запись. Его сейчас будем выводить из кластера, и он как раз бирюзовый на графике, т.е. самый незагруженный. на скрине sda - raid10 из 4xhdd sdb - raid1 из 2x ssd , используется как hot-storage для партов меньше 15гб

Сергей Худояров
screenshot запросы все посылаются через haproxy на сервер на ...

я бы смотрел system.query_log, сравнивал какие запросы сколько обрабатывают и куда прилетают, скорее всего есть перекос

Сергей-Худояров Автор вопроса
Denny [Altinity]
я бы смотрел system.query_log, сравнивал какие зап...

простите, а как это делать? есть ли какие нибудь готовые шаблоны запросов, чтобы проверить? запросов за час выполняется одинаково количество (60К) на проблемном и здоровом шарде. Есть какие-нибудь инструменты для сравнения? На что обращать внимание?

Сергей-Худояров Автор вопроса
Dmitry [Altinity] Titov
https://kb.altinity.com/altinity-kb-useful-queries...

спасибо! Помогите понять, за что можно зацепиться чтоб снизить нагрузку? Ощущение что он действительно ему нужно столько cpu. Но на другом шарде, где проц в 2 раза слабее, а данных в 15 раз больше - нет таких тормозов. https://pastila.nl/?0005d2e9/ed5ede3b69562298887490ac39f251f8#hKB7arscRuBWDu+7g5nLfA==

Сергей Худояров
screenshot спасибо! Помогите понять, за что можно зацепиться ...

судя по количеству читаемых данных надо бы индексов или со структурой поиграться

Сергей-Худояров Автор вопроса
Nick
судя по количеству читаемых данных надо бы индексо...

у меня здесь мало опыта. Может есть возможность платной консультации?

Сергей Худояров
у меня здесь мало опыта. Может есть возможность пл...

это надо с аналитиками или разрабами садиться, брать их запросы и разбираться что может помочь - работенка для полноценного дба в штате. От себя разве что могу посоветовать поразбирать что у клика по индексации https://clickhouse.com/docs/en/optimize/sparse-primary-indexes и https://clickhouse.com/docs/en/optimize/skipping-indexes У самого опыта не густо

Сергей Худояров
screenshot спасибо! Помогите понять, за что можно зацепиться ...

а какие сейчас primary key, order by и partition by на табличке buyouts_new_local? ну и есть ли другие индексы на ней

Сергей Худояров
screenshot спасибо! Помогите понять, за что можно зацепиться ...

и например хорошо бы разобраться почему у вас запросы возвращают 2.8кк строк (хеш с пастилы 14521524250897953175)

Сергей-Худояров Автор вопроса
Nick
а какие сейчас primary key, order by и partition b...

CREATE TABLE rtb_shard_new.buyouts_new_local ( ... ) ENGINE = MergeTree PARTITION BY toYYYYMMDD(buyout_date_time) ORDER BY (req_ssp_id, resp_dsp_id, req_site_id, resp_algorithm_id, resp_cpc_feed_id, resp_block_id, req_device_os, req_device_browser, req_device_osv, req_device_browser_v, req_sub_days, resp_seat_bid_bid_id, resp_seat_bid_bid_imp_id, resp_seat_bid_bid_price, resp_seat_bid_bid_nurl, resp_seat_bid_bid_burl, resp_seat_bid_bid_lurl, resp_seat_bid_bid_adm, resp_seat_bid_bid_ad_id, resp_seat_bid_bid_a_domain, resp_seat_bid_bid_bundle, resp_seat_bid_bid_iurl, resp_seat_bid_bid_cid, resp_seat_bid_bid_crid, resp_seat_bid_bid_tactic, resp_seat_bid_bid_cat, resp_seat_bid_bid_attr, resp_seat_bid_bid_api, req_site_name, resp_interests, resp_source, req_user_id, resp_new_id, resp_buying_type_id, req_ad_types, req_ad_output_type, resp_gender, req_sid_1, req_sid_2, req_sid_3, req_sid_4, req_sid_5, req_sid_6, req_sid_7, req_sid_8, req_sid_9, req_sid_10, req_sid_11, req_sid_12, req_sid_13, req_sid_14, req_sid_15, resp_top_id, resp_user_id, resp_campaign_id, req_site_news_id) SETTINGS index_granularity = 8192

Сергей-Худояров Автор вопроса
Nick
и например хорошо бы разобраться почему у вас запр...

скорее всего туда можно прикрутить MV, буду курить эту тему

Сергей Худояров
CREATE TABLE rtb_shard_new.buyouts_new_local ( ......

выкиньте все, оставьте только buyout_date_time

Сергей Худояров
CREATE TABLE rtb_shard_new.buyouts_new_local ( ......

так а в WHERE у вас что и что explain показывает по использованию партов и индексов?

Сергей-Худояров Автор вопроса
Nick
выкиньте все, оставьте только buyout_date_time

можно ли ключ сортировки менять наживую?

Сергей-Худояров Автор вопроса
Sergey Platonov
так а в WHERE у вас что и что explain показывает ...

https://gist.github.com/hsv000/1a6209efc329fc3e26887420e23d823e explain еще не делал

Сергей Худояров
CREATE TABLE rtb_shard_new.buyouts_new_local ( ......

в таком количества полей в сортировке нет смысла каждая следующая делается внутри предыдущей

Сергей-Худояров Автор вопроса

а в чем нюансы?

Сергей Худояров
https://gist.github.com/hsv000/1a6209efc329fc3e268...

buyout_date_time - возможно будет достаточно построить по нему партиционирование req_ad_type и resp_dsp_id в сортировки clicks_coeffs - если не большая лучше сделать с движком джойн

Сергей-Худояров Автор вопроса
Sergey Platonov
buyout_date_time - возможно будет достаточно постр...

спасибо, передам разрабам. будем думать

Сергей Худояров
а в чем нюансы?

https://fiddle.clickhouse.com/1d97917b-d149-4c8d-b65d-089954af8ee9

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта