Hi guys.
Our configuration is as follows:
4 x powerful machine nodes running with the following topology:
1 Layer -> 2 Shards -> 2 Replicas per shard
1 x less powerful machine that ingest CSV files into the cluster each 2 minutes
3 x ZooKeeper nodes
All those nodes are connected between them using 10GB link
We ingest around 10 million rows each two minutes, when we started to testing the system, ingestion times where really good, between 9 and 14 seconds, now they are really bad beyond 2 minutes (so we have backlog). We have two tables with 58 fields each. Actually we have 25,807,220,822 records in total in each table (counting it in the distributed table, data is obviously sharded).
Looks like the problem is that merges get delayed because too many parts to merge, actually we have the following parts per node:
Layer1-shard1-replica1: 59
Layer1-shard1-replica2: 478
Layer1-shard2-replica1: 58
Layer1-shard2-replica2: 343
I also see loads of warnings about ZooKeeper not being able to delete some parts because "no node" in three of the nodes
I have mainly three questions:
1) Any idea about why replica 2 in both shards have way more parts than replica 1?
2) Is there any documentation or guide about how to tweak ClickHouse server to improve performance? Our node machines are almost free, for example I never seen more CPU usage than 2% (40 cores per node, 256GB Ram per node)
3) How can I know what is wrong in the system to this drop of performance in the ingestion times?
Thank you.