@clickhouse_ru

Страница 688 из 723
Daniel
04.10.2018
21:02:02
у нас мониторится find /var/lib/clickhouse/data/{$db}/*/detached/* -type d
может, кому-то пригодится #!/bin/bash dtched=$(find /var/lib/clickhouse/data/click/*/detached/* -type d 2> /dev/null | wc -l) echo $dtched

Сообщение немного некорректное, так как в случае Replicated таблиц всё восстанавливается автоматически.
Спасибо за замечание ? Алексей, раз вы здесь, подскажите, что за unexpected таблицы в detached, при каких условиях они образуются, что с ними делать? Не похоже, чтобы таблицы потеряли данные, но они есть, например: unexpected_20181001_20181001_75431_75431_0

Alexey
04.10.2018
21:15:01
Спасибо за замечание ? Алексей, раз вы здесь, подскажите, что за unexpected таблицы в detached, при каких условиях они образуются, что с ними делать? Не похоже, чтобы таблицы потеряли данные, но они есть, например: unexpected_20181001_20181001_75431_75431_0
Это куски, которые при старте были обнаружены в файловой системе, но отсутствуют в ZooKeeper. Это значит, что при вставке или мерже, транзакция в ZK не прошла. В случае вставки, клиент не получил успешного ответа на INSERT, и кусок не считается вставленным. То есть, такого куска не должно быть. (Это не является потерей данных.)

Google
Daniel
04.10.2018
21:18:51
Это куски, которые при старте были обнаружены в файловой системе, но отсутствуют в ZooKeeper. Это значит, что при вставке или мерже, транзакция в ZK не прошла. В случае вставки, клиент не получил успешного ответа на INSERT, и кусок не считается вставленным. То есть, такого куска не должно быть. (Это не является потерей данных.)
Были проблемы с ZK у нас как раз, в момент когда на этот шард активнее всего писалось, всё сходится. То есть если клиент отслеживает ошибки вставки и повторяет их до кода успеха, то такие unexpected на самих серверах с Кликхаусом можно удалять?

Alexey
04.10.2018
21:20:16
Да.

Marsel
05.10.2018
09:21:41
Привет! Когда лучше использовать toYYYYMMDD(EventDate) вместо toYYYYMM(EventDate)? Это даст какое-то улучшение, если в запросах везде используется EventDate >= '...'?

Vladimir
05.10.2018
09:55:06
Добрый день. Есть кластер версси 1.1.54385 Хочется обновиться, но боязно тк продакшен Может есть где-то список критичных багов или на какие версии точно не надо обновляться? Ну типа GA релизы что ли? Кто как решает этот вопрос?

kockockoc
05.10.2018
09:58:08
а https://github.com/yandex/ClickHouse/blob/master/CHANGELOG_RU.md - это точно хороший способ?

Vladimir
05.10.2018
09:58:13
Это то да, как рраз сейчас его сделали, но что-то подумалось неужели все делают тестовый стенд и независимо тестируют. Поинтетесовался тк возможно аналогично логу изменении есть лог критичных багов. Спсб

kockockoc
05.10.2018
10:00:02
а то в CHANGELOG_RU.md, CHANGELOG.md и в https://github.com/yandex/ClickHouse везде разные stable релизы

S
05.10.2018
10:01:38
Добрый день, подскажите куда копать? <Error> HTTPHandler: Cannot send exception to client: Code: 173, e.displayText() = D B::Exception: Allocator: Cannot malloc 1.00 MiB., errno: 12, strerror: Cannot allocate memory, e.what() = DB::Exceptio n, Stack trace:

Wolf
05.10.2018
10:02:25
Это то да, как рраз сейчас его сделали, но что-то подумалось неужели все делают тестовый стенд и независимо тестируют. Поинтетесовался тк возможно аналогично логу изменении есть лог критичных багов. Спсб
ну у всех в целом есть staging для разработки , в целом сперва читаем полностью ченджлог, потом идем и смотрим ишью нет ли чего связаного с вашей спецификой, обновляем стаж, обновляем прод. в целом стратегия такая что если нет потребности в одновлении не обновляем

S
05.10.2018
10:04:01
Обновили версию, довольно сильно промотали, раньше памяти хватало, сейчас даж в свап не уходит падает с такой ошибкой

Google
S
05.10.2018
10:06:53
<Error> void DB::StorageBuffer::flushThread(): Code: 173, e.displayText() = DB::Exce ption: Allocator: Cannot malloc 4.00 KiB., errno: 12, strerror: Cannot allocate memory, e.what() = DB::Exception, Stac k trace: 0. /usr/bin/clickhouse-server(StackTrace::StackTrace()+0x16) [0x56d06c6] 1. /usr/bin/clickhouse-server(DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::a llocator<char> > const&, int)+0x22) [0x2da2d92] 2. /usr/bin/clickhouse-server(DB::throwFromErrno(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocat or<char> > const&, int, int)+0x1bc) [0x56b784c] 3. /usr/bin/clickhouse-server(Allocator<false>::alloc(unsigned long, unsigned long)+0x156) [0x56aec56] 4. /usr/bin/clickhouse-server(void DB::PODArray<unsigned long, 4096ul, Allocator<false>, 15ul>::reserveForNextSize<>() +0xd4) [0x2e9e7f4] 5. /usr/bin/clickhouse-server(DB::ColumnString::insertFrom(DB::IColumn const&, unsigned long)+0x181) [0x4f449b1] 6. /usr/bin/clickhouse-server(DB::MergedBlockOutputStream::writeImpl(DB::Block const&, DB::PODArray<unsigned long, 409 6ul, Allocator<false>, 15ul> const*)+0x745) [0x50c2af5] 7. /usr/bin/clickhouse-server(DB::MergeTreeDataWriter::writeTempPart(DB::BlockWithPartition&)+0xa2e) [0x50a0dce] 8. /usr/bin/clickhouse-server(DB::MergeTreeBlockOutputStream::write(DB::Block const&)+0xc9) [0x5043659] 9. /usr/bin/clickhouse-server(DB::PushingToViewsBlockOutputStream::write(DB::Block const&)+0x43) [0x521b583] 10. /usr/bin/clickhouse-server(DB::AddingDefaultBlockOutputStream::write(DB::Block const&)+0x6b8) [0x51a07f8] 11. /usr/bin/clickhouse-server(DB::SquashingBlockOutputStream::finalize()+0x248) [0x52208d8] 12. /usr/bin/clickhouse-server(DB::SquashingBlockOutputStream::writeSuffix()+0x11) [0x5220b61] 13. /usr/bin/clickhouse-server(DB::StorageBuffer::writeBlockToDestination(DB::Block const&, std::shared_ptr<DB::IStora ge>)+0xd8a) [0x53980aa] 14. /usr/bin/clickhouse-server(DB::StorageBuffer::flushBuffer(DB::StorageBuffer::Buffer&, bool)+0x3a5) [0x5398695] 15. /usr/bin/clickhouse-server(DB::StorageBuffer::flushThread()+0x60) [0x5398b40] 16. /usr/bin/clickhouse-server() [0x930310f] 17. /lib/x86_64-linux-gnu/libpthread.so.0(+0x7494) [0x7fb5155ea494] 18. /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f) [0x7fb514e24a8f]

При чем большая часть ОП занята кэшами, у КХ растет только VIRT память, RES больше 2000M не поднимается

ну и свап свободен полностью

Когда сваливается эта ошибка даж мержи с malloc падают

Artem
05.10.2018
10:10:15
упасть может в любом месте, память аллоцирует все подряд

проблема не в кликхаусе. упадет любая прорамма в этот момент

Леонид
05.10.2018
10:11:09
Всем день добрый. Подскажите, как-то посмотреть, как запрос выполняется, можно?

S
05.10.2018
10:12:10
Лучше скажите за чем понаблюдать

Я даж воспроизвести, наверно, смогу

Artem
05.10.2018
10:13:24
ну может Вам его cgroup-ами зарезали или еще как. можно выставить лимит на память, чтобы ловить проблему раньше

Artem
05.10.2018
10:14:40
ну, у вас есть пиковый момент, когда в системе нет памяти, можно посмотреть по top или другими средствами мониторинга. если причина в конкретном запросе - стоит попробовать зарезать запросы лимитами

тогда они будут отваливаться по exception-у, а сервер не падать

если память съедает соседний процесс - лечить разграничением памяти средставми linux

Denis
05.10.2018
10:16:16
в dmesg будет лог oom_killer, почитайте, может будут наводки

Artem
05.10.2018
10:16:23
max_memory_usage, 0, "Maximum memory usage for processing of single query. Zero means unlimited." max_memory_usage_for_user, 0, "Maximum memory usage for processing all concurrently running queries for the user. Zero means unlimited." max_memory_usage_for_all_queries, 0, "Maximum memory usage for processing all concurrently running queries on the server. Zero means unlimited."

S
05.10.2018
10:16:41
Падает сам КХ без ООМ

Google
Denis
05.10.2018
10:23:30
S
05.10.2018
10:24:30
18.10.3

А версия кх? а если откатится на 18.6?
А что такого было после 18.6?

Denis
05.10.2018
10:26:13
Заменен аллокатор tcmalloc на jemalloc.

S
05.10.2018
10:27:05
Хм, сейчас подумаем, спасибо за наводку

Vitaliy
05.10.2018
10:31:01
Hi как можна корректно отстоновить кх, если он на systemd и init.d не реагирует?

на kill $pid тоже

Wolf
05.10.2018
10:33:56
никак , сделайте kill -9

Vitaliy
05.10.2018
10:35:04
пичалька…..

Wolf
05.10.2018
10:38:05
ну о ну вас завис , о корректной остановке тут сложно говорить

Artem
05.10.2018
10:38:05
в идеале перед этим подсоединиться gdb и сделать 'thread apply all bt' и завести issue на гитхабе

Vitaliy
05.10.2018
10:40:44
он не завис, он работал с чтением/записю проблем небыло

Александр
05.10.2018
11:26:51
Всем привет! А кто подскажет, если я на кластере 4x2 запускаю optimize table some_replicated_table, то этот запрос само собой пробрасывается и на реплики, НО, судя по метрике мерджей это и на шарды тоже пробрасывается. Это так? Кто знает? )

J
05.10.2018
11:40:49
Добрый день! Кто нибудь, помогите :) Пытаюсь подключить внешний словарь выдает ошибку: "Code: 32, e.displayText() = DB::Exception: Attempt to read after eof: error parsing null_value, e.what() = DB::Exception" настройка : <yandex> <dictionary> <name>asn</name> <layout> <range_hashed /> </layout> <source> <file> <path>/opt/clickhouse/dictionaries/ASN.csv</path> <format>CSV</format> </file> </source> <structure> <id> <name>Id</name> </id> <attribute> <name>IPRangeStart</name> <type>Int64</type> <null_value></null_value> </attribute> <attribute> <name>IPRangeEnd</name> <null_value></null_value> <type>Int64</type> </attribute> <attribute> <null_value></null_value> <name>IPRange</name> <type>String</type> </attribute> <attribute> <null_value></null_value> <name>ASN</name> <type>Int64</type> </attribute> <attribute> <null_value></null_value> <name>ORG</name> <type>String</type> </attribute> </structure> </dictionary> </yandex> пример строки из CSV: "16778752","16779007","1.0.6.0/24","56203","Big Red Group" Заранее благодярю!

J
05.10.2018
11:58:06
В csv id нет

Спасибо, сейчас попробую убрать

Google
Viktor
05.10.2018
12:34:12
@JSFunnnn вот так должен выглядеть конфиг для словаря https://gist.github.com/vmanyushin/38344bc89fda0d80c187ccb52223e7ee сами данные в CSV не должны быть в кавычках если это не строки 16778752,16779007,"1.0.6.0/24",56203,"Big Red Group"

Александр
05.10.2018
12:35:08
Марат
05.10.2018
12:35:52
а есть кто из Казани, готовый интегрировать Clockhouse в работающую систему?

Александр
05.10.2018
12:42:02
Ох уж эти мутации. 2018.10.05 15:40:50.098966 [ 13 ] <Error> default.entities_results_replicated (StorageReplicatedMergeTree): Code: 40, e.displayText() = DB::Exception: Checksums of parts don't match: hash of uncompressed files doesn't match, uncompressed hash of compressed files doesn't match, e.what() = DB::Exception. Data after mutation is not byte-identical to data on another replicas. We will download merged part from replica to force byte-identical result. Валит нонстопом и висят мутации в процессе...Я так понял их лучше запускать ТОЛЬКО на мастер репликах либо только на одной реплике

Wolf
05.10.2018
12:42:06
а есть кто из Казани, готовый интегрировать Clockhouse в работающую систему?
тут надо брать человека тогда уж в штат и мне кажется проще у себя кого то научить

Александр
05.10.2018
12:42:07
Иначе они тупо ломаются

Wolf
05.10.2018
12:42:57
по сути у вас получились куски разные на двух репликах, а если данные были одни и теже и мутация прошла одна и таже, но и на выходе должно получиться одно и тоже

Александр
05.10.2018
12:44:36
я запускаю как попало и нет таких проблем , ощущение что у вас какие то проблемы с диском или памятью или процом
Ладно оно ругается, но короче оно только орет что че-то будет делать и ниче не делает...говорит я типа скачаю кусок с другой реплики, но не качает ничего

Wolf
05.10.2018
12:45:13
ну я же говорю у вас проблема с диском процом или памятью , так что на выходе может быть что угодно , то есть я бы сразу такую реплику из работы убирал бы

Александр
05.10.2018
12:50:50
ну я же говорю у вас проблема с диском процом или памятью , так что на выходе может быть что угодно , то есть я бы сразу такую реплику из работы убирал бы
Блин, ладно бы такое было на одном сервере, но это не на одном а на 4 точно, а это вообще разные физические машины и разные шарды

Wolf
05.10.2018
12:51:10
я на тестах мутаций делал очень много и по разному и никаких проблем не было , в кх вообще нет понятия мастер реплика , запускать на одной реплике вообще не понятно что значит, так как мутации реплицируются и ты их всегда запускаешь везде

Александр
05.10.2018
12:51:40
И такие траблы начинаются если во время мутации что-то пошло не так. Например delete where column in ANOTHER_TABLE и вот если ANOTHER_TABLE не существует, но потом появляется, то мутация проходит, но данные бьются

Wolf
05.10.2018
12:52:01
ну это понятное дело

Александр
05.10.2018
12:52:02
Это очень плохо. У нас такое не первый раз уже. И постоянная дрочка вот этой репликации создает нам нагрузку большую

Wolf
05.10.2018
12:52:07
так делать не надо

либо надо руками плохую мутацию удалять но это гемор очень большой

плохие мутации не надо генерировать так как в кх нет механизма их авторазрешения

зачем вы вообще делаете делете с участием несуществующей таблицы то ?

Google
Vladimir
05.10.2018
12:55:03
зачем вы вообще делаете делете с участием несуществующей таблицы то ?
вопрос не зачем. Вопрос что нужен issue по этому поводу

Страница 688 из 723