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

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

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

25 ответов

20 просмотров

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

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

Сергей-Худояров Автор вопроса
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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта