
Alexander
01.08.2017
19:05:11
Если я правильно понимаю, то проблемы полезут из других движков и из зоокипера, но там num_layers может поможет (не проверял).

Ilya
01.08.2017
19:37:20
Буфер живет в памяти и при отключении питания ваши данные тютю. Со всеми вытекающими.

Alex
01.08.2017
19:57:42

Vladimir
01.08.2017
20:17:19
Опять наткнулся на 2017.08.01 20:16:24.814536 [ 189 ] <Error> HTTPHandler: Code: 252, e.displayText() = DB::Exception: Too much parts. Merges are processing significantly slower than inserts., e.what() = DB::Exception, Stack trace:

Google

Vladimir
01.08.2017
20:18:29
background_pool_size увеличил до безобразия - не помогло
сервера ничего не делают, процессоры простиавают и инсерты просели в 5 раз
и что с этим делать непонятно
интересно что это на кластере из 3 машин, 3 шарды по 2 реплики
на одной машине когда поставил background_pool_size = 8 этого хватило чтобы мержи успевали
На скрине видно как после 8:08 где-то процессинг из Кафки стал рваным (лаг перестал снижатьс быстро) и в это же время КХ сервера начали курить
Непорядок какой-то

Fike
01.08.2017
22:46:16

Igor
01.08.2017
23:02:03

Renat
02.08.2017
06:50:52
@garikanet что если на этапе загрузки в CH стало понятно, что с данными что-то не так? Не правильный тип поля, например. Как решаете?
впрочем это касается не только php

Igor
02.08.2017
07:27:43

Tima
02.08.2017
07:36:21

Google

Tima
02.08.2017
07:36:45


Vladimir
02.08.2017
07:45:45
Позвольте повторить свои вопросы, потому как без ответов я застопорился совсем
1 по кластеру.
SELECT *
FROM system.clusters
┌─cluster─┬─shard_num─┬─shard_weight─┬─replica_num─┬─host_name──┬─host_address─┬─port─┬─is_local─┬─user────┬─default_database─┐
│ metrics │ 1 │ 1 │ 1 │ 10.1.1.251 │ 10.1.1.251 │ 9000 │ 1 │ default │ │
│ metrics │ 1 │ 1 │ 2 │ 10.1.1.86 │ 10.1.1.86 │ 9000 │ 1 │ default │ │
│ metrics │ 2 │ 1 │ 1 │ 10.1.1.251 │ 10.1.1.251 │ 9000 │ 1 │ default │ │
│ metrics │ 2 │ 1 │ 2 │ 10.1.1.145 │ 10.1.1.145 │ 9000 │ 1 │ default │ │
│ metrics │ 3 │ 1 │ 1 │ 10.1.1.86 │ 10.1.1.86 │ 9000 │ 0 │ default │ │
│ metrics │ 3 │ 1 │ 2 │ 10.1.1.145 │ 10.1.1.145 │ 9000 │ 0 │ default │ │
└─────────┴───────────┴──────────────┴─────────────┴────────────┴──────────────┴──────┴──────────┴─────────┴──────────────────┘
6 rows in set. Elapsed: 0.050 sec.
Тут вроде все ок, 3 шарды по 2 реплики
а тут пишет что реплика 1
SELECT * FROM system.replicas
FORMAT Vertical
zookeeper_path: /clickhouse/tables/measures/01
replica_name: 1
replica_path: /clickhouse/tables/measures/01/replicas/1
columns_version: 0
queue_size: 3
inserts_in_queue: 0
merges_in_queue: 3
queue_oldest_time: 2017-08-02 07:44:40
inserts_oldest_time: 0000-00-00 00:00:00
merges_oldest_time: 2017-08-02 07:44:40
oldest_part_to_get:
oldest_part_to_merge_to: 20170210_20170216_42373_54709_5421
log_max_index: 914493
log_pointer: 914494
last_queue_update: 2017-08-02 07:44:40
absolute_delay: 0
total_replicas: 1
active_replicas: 1
Так по 2 реплики или все таки по одной ?
Вопрос номер два:
Локальные запросы с 3 машин
1 rows in set. Elapsed: 1.254 sec. Processed 9.56 billion rows, 19.13 GB (7.63 billion rows/s., 15.25 GB/s.)
1 rows in set. Elapsed: 0.833 sec. Processed 7.38 billion rows, 14.75 GB (8.85 billion rows/s., 17.70 GB/s.)
1 rows in set. Elapsed: 0.810 sec. Processed 6.80 billion rows, 13.59 GB (8.39 billion rows/s., 16.79 GB/s.)
9.56+7.38+6.80=23.74
Распределенный запрос
1 rows in set. Elapsed: 2.310 sec. Processed 25.92 billion rows, 51.85 GB (11.22 billion rows/s., 22.44 GB/s.)
Почему одно не равно другому?
Вопрос номер три, последнии :)
Что же все таки делать с 2017.08.01 20:16:24.814536 [ 189 ] <Error> HTTPHandler: Code: 252, e.displayText() = DB::Exception: Too much parts. Merges are processing significantly slower than inserts., e.what() = DB::Exception, Stack trace:
Почему кластер перестает грузить машины и писать начинает очень медленно?
Как его заставить мержить используя все ресурсы?
Картинку повторю


Kirill
02.08.2017
08:07:54
2) Он получил данные с 3-х машин, потом результат локально померджил (тоже строки)
3) Вставляйте большими пачками не чаще чем раз в 1-2 секунды

Aleksander
02.08.2017
08:08:16
Привет, правильно ли я понимаю, что replacingMergeTree удаляет дубликат по соответствию составного primary ключа? Т.е если у меня составной ПК состоит из него лонгового id и даты, то mergeTree удалит дубликат, при соответствии и айди, и даты одновременно

Vladimir
02.08.2017
08:09:30
2) Так count же, как он так помержил что итоговая сумма разная получилась?
3) вставляю пачками по 500000
Увеличить до 1000000?

Kirill
02.08.2017
08:11:44
Уверены что оно одним блоком уходит, а не кучей insert into ?

Dima
02.08.2017
08:13:19
привет! а что за метрика ClickHouse.ProfileEvents.SelectedRanges ?

Vladimir
02.08.2017
08:13:35
Уверен что блоком иначе бы оно намного раньше умерло
Count правильно? Не уверен что понял вопрос, извини. Ну сложил я 3 числа вроде правильно. А как КХ их посчитал я не уверен

Kirill
02.08.2017
08:18:13
стопаем запись, делаем
SELECT COUNT() FROM distributed
и на всех локальных
SELECT COUNT() from local
складываем числа с локальных и они должны сойтись с распределенной

Vladimir
02.08.2017
08:18:45
так это и делал

Google

Vladimir
02.08.2017
08:18:55
сейчас повторю
насчет записи

Kirill
02.08.2017
08:19:00
и что получилось ?


Vladimir
02.08.2017
08:19:05
вот так начинается
2017-08-01 19:55:00,272 INFO [CHRawDataPullerThread_3] com.sematext.spm.clickhouse.CHRawDataPuller$Companion$PullerThread:123 - CHRawDataPullerThread_3: Inserted 500001 docs into store
2017-08-01 19:55:00,904 INFO [CHRawDataPullerThread_7] com.sematext.spm.clickhouse.CHRawDataPuller$Companion$PullerThread:123 - CHRawDataPullerThread_7: Inserted 500003 docs into store
2017-08-01 19:55:01,612 INFO [CHRawDataPullerThread_5] com.sematext.spm.clickhouse.CHRawDataPuller$Companion$PullerThread:123 - CHRawDataPullerThread_5: Inserted 500003 docs into store
2017-08-01 19:55:02,462 INFO [CHRawDataPullerThread_2] com.sematext.spm.clickhouse.CHRawDataPuller$Companion$PullerThread:123 - CHRawDataPullerThread_2: Inserted 500001 docs into store
2017-08-01 19:55:04,705 INFO [CHRawDataPullerThread_1] com.sematext.spm.clickhouse.CHRawDataPuller$Companion$PullerThread:123 - CHRawDataPullerThread_1: Inserted 500001 docs into store
2017-08-01 19:55:05,590 INFO [CHRawDataPullerThread_6] com.sematext.spm.clickhouse.CHRawDataPuller$Companion$PullerThread:123 - CHRawDataPullerThread_6: Inserted 500002 docs into store
2017-08-01 19:55:06,438 INFO [CHRawDataPullerThread_0] com.sematext.spm.clickhouse.CHRawDataPuller$Companion$PullerThread:123 - CHRawDataPullerThread_0: Inserted 500001 docs into store
вот так потом с затыками
2017-08-01 20:50:31,461 INFO [CHRawDataPullerThread_2] com.sematext.spm.clickhouse.CHRawDataPuller$Companion$PullerThread:123 - CHRawDataPullerThread_2: Inserted 500004 docs into store
2017-08-01 20:50:31,521 INFO [CHRawDataPullerThread_6] com.sematext.spm.clickhouse.CHRawDataPuller$Companion$PullerThread:123 - CHRawDataPullerThread_6: Inserted 500000 docs into store
2017-08-01 20:50:53,914 INFO [CHRawDataPullerThread_6] com.sematext.spm.clickhouse.CHRawDataPuller$Companion$PullerThread:123 - CHRawDataPullerThread_6: Inserted 500006 docs into store
2017-08-01 20:50:53,980 INFO [CHRawDataPullerThread_0] com.sematext.spm.clickhouse.CHRawDataPuller$Companion$PullerThread:123 - CHRawDataPullerThread_0: Inserted 500002 docs into store
2017-08-01 20:50:54,452 INFO [CHRawDataPullerThread_2] com.sematext.spm.clickhouse.CHRawDataPuller$Companion$PullerThread:123 - CHRawDataPullerThread_2: Inserted 500003 docs into store
и на картинке выше видно что в это время сервера ничего не делают
вот повторил
1 rows in set. Elapsed: 0.780 sec. Processed 6.86 billion rows, 13.73 GB (8.80 billion rows/s., 17.61 GB/s.)
1 rows in set. Elapsed: 0.851 sec. Processed 7.44 billion rows, 14.89 GB (8.74 billion rows/s., 17.49 GB/s.)
1 rows in set. Elapsed: 1.087 sec. Processed 9.65 billion rows, 19.31 GB (8.88 billion rows/s., 17.77 GB/s.)
6.86+7.44+9.65=23.95
1 rows in set. Elapsed: 2.144 sec. Processed 26.17 billion rows, 52.35 GB (12.21 billion rows/s., 24.42 GB/s.)
могу скриншотов наделать
запросы такие
select count(*) from Measures;
и
select count(*) from Measures_Distributed;
Идеи? И что блин с этими мержами делать, видимо надо Алексея ждать. Сам не разберусь.


Kirill
02.08.2017
09:26:53


Vladimir
02.08.2017
09:31:16
Да каунты не сошлись
У меня всего 3 сервера сейчас. Выше я выложил как clusters выглядит.
Выкладывать как таблицы создавал?
Добавил еще 2 распределенные таблицы. Они указывают на те же реплицированные. Вот результаты.
Что-то я в замешательстве все больше
ubuntu@pprod-spm-ch-3:~$ curl 'pprod-spm-ch-3:8123?query=select+count(*)+from+default.Measures_Distributed;'
27006115772
ubuntu@pprod-spm-ch-3:~$ curl 'pprod-spm-ch-4:8123?query=select+count(*)+from+default.Measures_Distributed;'
22433347800
ubuntu@pprod-spm-ch-3:~$ curl 'pprod-spm-ch-5:8123?query=select+count(*)+from+default.Measures_Distributed;'
24140419001
Запросы к 3 серверам.
ubuntu@pprod-spm-ch-3:~$ for i in seq 3 5; do curl 'pprod-spm-ch-'$i':8123?query=select+count(*)+from+default.Measures_Distributed;'; done;
27641774875
25349551940
24191925958
ubuntu@pprod-spm-ch-3:~$ for i in seq 3 5; do curl 'pprod-spm-ch-'$i':8123?query=select+count(*)+from+default.Measures_Distributed;'; done;
27062961884 »»»»» УМЕНЬШИЛОСЬ КОЛ-ВО? КАК ТАК?
22478516014
21899703023


Vladimir
02.08.2017
10:21:43
for i in {1..3}; do curl 'localhost:8123?query=select+count(*)+from+default.metricstats;'; done
127850185240
127850185240
127850185240

Google

Vladimir
02.08.2017
10:22:06
тоже запрос на распределенную таблицу, поверх replicated merge tree

Vladimir
02.08.2017
10:22:32
Как проверить что реплтки не отстают?
В system.replicas delay = 0
SELECT absolute_delay
FROM system.replicas
FORMAT Vertical
Row 1:
──────
absolute_delay: 0
1 rows in set. Elapsed: 0.001 sec.

Vladimir
02.08.2017
10:24:47
а версия КХ какая?

Vladimir
02.08.2017
10:25:26
где глянуть (извини не знаю)

Admin
ERROR: S client not available

Vladimir
02.08.2017
10:25:28
На всех

Vladimir
02.08.2017
10:25:29
Vladimir у меня такое же поведение странное было когда у меня на одной из старых версий машинка с одной из реплик сдохла, но вроде как это уже тоже не так
например
и проверь сразу на всех железках

Vladimir
02.08.2017
10:26:35
На всех
1.1.54245

Vladimir
02.08.2017
10:26:50
это вроде последний stable, да
ну тогда ждем когда @milovidov_an или @the_real_jkee или еще кто из разработчиков (или близких к ним людей) посмотрит


Vladimir
02.08.2017
10:27:57
ubuntu@pprod-spm-ch-3:~$ for i in seq 3 5; do curl 'pprod-spm-ch-'$i':8123?query=select+version();'; done;
1.1.54245
1.1.54245
1.1.54245
Да жду их. Без кластера все вроде ок было. А тут началось :)
Реально очень похоже что что-то с репликами
потому как числа прыгают но вариантов только 2
ubuntu@pprod-spm-ch-3:~$ for i in seq 3 5; do curl 'pprod-spm-ch-'$i':8123?query=select+count(*)+from+default.Measures_Distributed;'; done;
27062961884
25349551940
24191925958
ubuntu@pprod-spm-ch-3:~$ for i in seq 3 5; do curl 'pprod-spm-ch-'$i':8123?query=select+count(*)+from+default.Measures_Distributed;'; done;
27641774875
22478516014
21899703023
ubuntu@pprod-spm-ch-3:~$ for i in seq 3 5; do curl 'pprod-spm-ch-'$i':8123?query=select+count(*)+from+default.Measures_Distributed;'; done;
27641774875
25349551940
21899703023
ubuntu@pprod-spm-ch-3:~$ for i in seq 3 5; do curl 'pprod-spm-ch-'$i':8123?query=select+count(*)+from+default.Measures_Distributed;'; done;
27641774875
22478516014
24191925958
ubuntu@pprod-spm-ch-3:~$ for i in seq 3 5; do curl 'pprod-spm-ch-'$i':8123?query=select+count(*)+from+default.Measures_Distributed;'; done;
27641774875
22478516014
21899703023
ubuntu@pprod-spm-ch-3:~$ for i in seq 3 5; do curl 'pprod-spm-ch-'$i':8123?query=select+count(*)+from+default.Measures_Distributed;'; done;
27641774875
22478516014
21899703023

Google

Vladimir
02.08.2017
10:31:22
Может дело в том что я на каждой машине создавал по 2 таблицы такие?
CREATE TABLE IF NOT EXISTS Measures
(
account UInt32,
id UInt32,
date Date,
timestamp UInt32,
value Float32,
tags Nested (
name UInt32,
value UInt32
)
) Engine = ReplicatedMergeTree('/clickhouse/tables/measures/02', '2',date, (account, id, timestamp), 8192);
CREATE TABLE IF NOT EXISTS Measures
(
account UInt32,
id UInt32,
date Date,
timestamp UInt32,
value Float32,
tags Nested (
name UInt32,
value UInt32
)
) Engine = ReplicatedMergeTree('/clickhouse/tables/measures/03', '2',date, (account, id, timestamp), 8192);
ну тоесть они шардами и репликми отличались только

Vladimir
02.08.2017
10:35:10
а ты уверен что они у тебя обе созданы? )
кажется что с одним именем нельзя

Vladimir
02.08.2017
10:35:50
может не обе
как на 3 сервера раскидать 3 шарда с 2 репликами по другому не придумал
Могу все пересоздать если кто подскажет как
:)

Vladimir
02.08.2017
10:37:13
названия таблиц поменяй (ИМХО)
но я боюсь ты дистрибьютед на них так просто не натянешь уже

Vladimir
02.08.2017
10:37:33
А как тогда в Распределенной их указать?
CREATE TABLE default.Measures_Distributed ( account UInt32, id UInt32, date Date, timestamp UInt32, value Float32, tags.name Array(UInt32), tags.value Array(UInt32)) ENGINE = Distributed(metrics, \'default\', \'Measures\', rand())


Nikolai
02.08.2017
10:44:02
Может дело в том что я на каждой машине создавал по 2 таблицы такие?
CREATE TABLE IF NOT EXISTS Measures
(
account UInt32,
id UInt32,
date Date,
timestamp UInt32,
value Float32,
tags Nested (
name UInt32,
value UInt32
)
) Engine = ReplicatedMergeTree('/clickhouse/tables/measures/02', '2',date, (account, id, timestamp), 8192);
CREATE TABLE IF NOT EXISTS Measures
(
account UInt32,
id UInt32,
date Date,
timestamp UInt32,
value Float32,
tags Nested (
name UInt32,
value UInt32
)
) Engine = ReplicatedMergeTree('/clickhouse/tables/measures/03', '2',date, (account, id, timestamp), 8192);
Как-то странно создаются таблицы. По-логике, 2-я совсем не должна была создаться, так как IF NOT EXISTS, и имя совпадает с первой.

Vladimir
02.08.2017
10:44:29
Согласен
что-то намудрил
дайте рецепт как на 3 серверах получить 3 шарды с 2 репликами для каждой
Неужели у всех 6 серверов :)