ClickHouse_ClickHouse常见系统表与磁盘自动迁移问题排查
1.常见ClickHouse系统表及其字段
1.1 system.clusters
system.clusters表中记录了配置文件中所配置好的集群和服务器相关的信息,主要字段如下:
1 | cluster (String) — 集群名称。 |
表实例:
| cluster | shard_num | shard_weight | replica_num | host_name | host_address | port | is_local | user | default_database | errors_count | slowdowns_count | estimated_recovery_time |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ZYX_CK_Pub_08 | 1 | 1 | 1 | 10.199.136.101 | 10.199.136.101 | 9600 | 0 | default | 0 | 0 | 0 | |
| ZYX_CK_Pub_08 | 1 | 1 | 2 | 10.199.136.5 | 10.199.136.5 | 9700 | 0 | default | 0 | 0 | 0 | |
| ZYX_CK_Pub_08 | 1 | 1 | 3 | 10.199.136.52 | 10.199.136.52 | 9800 | 0 | default | 0 | 0 | 0 | |
| ZYX_CK_Pub_08 | 2 | 1 | 1 | 10.199.136.5 | 10.199.136.5 | 9600 | 0 | default | 0 | 0 | 0 | |
| ZYX_CK_Pub_08 | 2 | 1 | 2 | 10.199.136.52 | 10.199.136.52 | 9700 | 0 | default | 0 | 0 | 0 | |
| ZYX_CK_Pub_08 | 2 | 1 | 3 | 10.199.136.101 | 10.199.136.101 | 9800 | 0 | default | 0 | 0 | 0 | |
| ZYX_CK_Pub_08 | 3 | 1 | 1 | 10.199.136.52 | 10.199.136.52 | 9600 | 0 | default | 0 | 0 | 0 | |
| ZYX_CK_Pub_08 | 3 | 1 | 2 | 10.199.136.101 | 10.199.136.101 | 9700 | 0 | default | 0 | 0 | 0 | |
| ZYX_CK_Pub_08 | 3 | 1 | 3 | 10.199.136.5 | 10.199.136.5 | 9800 | 0 | default | 0 | 0 | 0 |
从上图可以看出ZYX_CK_Pub_08是一个三副本集群,也可以看出每个分片编号和副本编号及其对应的ip和端口号。
1.2 system.settings
system.settings表中记录了该ClickHouse集群的配置文件中的配置信息,就比如hbase集群的core-default.xml、hbase-site.xml配置文件中的各种集群配置项,该表的主要字段如下:
1 | name (String) — 设置项名称。 |
表实例,此处只截取部分,一般这种集群配置项可以多达四五百项:
| name | value | changed | description | min | max | readonly | type |
|---|---|---|---|---|---|---|---|
| min_compress_block_size | 65536 | 0 | The actual size of the block to compress, if the uncompressed data less than max_compress_block_size is no less than this value and no less than the volume of data for one mark. | 0 | UInt64 | ||
| max_compress_block_size | 1048576 | 0 | The maximum size of blocks of uncompressed data before compressing for writing to a table. | 0 | UInt64 | ||
| max_block_size | 65505 | 0 | Maximum block size for reading | 0 | UInt64 | ||
| max_insert_block_size | 1048545 | 0 | The maximum block size for insertion, if we control the creation of blocks for insertion. | 0 | UInt64 | ||
| min_insert_block_size_rows | 1048545 | 0 | Squash blocks passed to INSERT query to specified size in rows, if blocks are not big enough. | 0 | UInt64 | ||
| min_insert_block_size_bytes | 268427520 | 0 | Squash blocks passed to INSERT query to specified size in bytes, if blocks are not big enough. | 0 | UInt64 | ||
| min_insert_block_size_rows_for_materialized_views | 0 | 0 | Like min_insert_block_size_rows, but applied only during pushing to MATERIALIZED VIEW (default: min_insert_block_size_rows) | 0 | UInt64 | ||
| min_insert_block_size_bytes_for_materialized_views | 0 | 0 | Like min_insert_block_size_bytes, but applied only during pushing to MATERIALIZED VIEW (default: min_insert_block_size_bytes) | 0 | UInt64 | ||
| max_joined_block_size_rows | 65505 | 0 | Maximum block size for JOIN result (if join algorithm supports it). 0 means unlimited. | 0 | UInt64 |
1.3 system.parts
system.parts表中记录了集群中所有MergeTree引擎表的分区信息,对于ClickHouse一个partition分区就是一个文件夹,也是ClickHouse中数据变更的最小存储单元,该表的主要字段如下:
1 | partition (String) – 分区的名称。要了解分区是什么,参考ALTER查询的描述。格式: |
表实例:
| partition | name | uuid | part_type | active | marks | rows | bytes_on_disk | data_compressed_bytes | data_uncompressed_bytes | marks_bytes | secondary_indices_compressed_bytes | secondary_indices_uncompressed_bytes | secondary_indices_marks_bytes | modification_time | remove_time | refcount | min_date | max_date | min_time | max_time | partition_id | min_block_number | max_block_number | level | data_version | primary_key_bytes_in_memory | primary_key_bytes_in_memory_allocated | is_frozen | database | table | engine | disk_name | path | hash_of_all_files | hash_of_uncompressed_files | uncompressed_hash_of_compressed_files | delete_ttl_info_min | delete_ttl_info_max | move_ttl_info.expression | move_ttl_info.min | move_ttl_info.max | default_compression_codec | recompression_ttl_info.expression | recompression_ttl_info.min | recompression_ttl_info.max | group_by_ttl_info.expression | group_by_ttl_info.min | group_by_ttl_info.max | rows_where_ttl_info.expression | rows_where_ttl_info.min | rows_where_ttl_info.max | projections |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2022-10-04 | 0028c85aeceda9adb3d5f1cb7cd84356_1_29_2 | 7c4c09c7-ee72-41c9-bb80-dff8a8856748 | Wide | 1 | 178 | 1441935 | 206586355 | 206541431 | 341693021 | 38448 | 0 | 0 | 0 | 2022-10-05 09:43:36.000 | 1970-01-01 08:00:00.000 | 1 | 1970-01-01 | 1970-01-01 | 1970-01-01 08:00:00.000 | 1970-01-01 08:00:00.000 | 0028c85aeceda9adb3d5f1cb7cd84356 | 1 | 29 | 2 | 1 | 12096 | 25088 | 0 | SZ | .inner.ck_sz_flow_prod_traffics_sum_mv_unif | ReplicatedAggregatingMergeTree | default | /data4/jdolap/clickhouse/data/data/SZ/%2Einner%2Eck_sz_flow_prod_traffics_sum_mv_unif/0028c85aeceda9adb3d5f1cb7cd84356_1_29_2/ | 64054bade4700f3b8cce14f7acf989ab | e11aa9565de94329c556ff1fc92bedc3 | 2ad5dca75e75069f6ff2c2ec303d0387 | 1970-01-01 08:00:00.000 | 1970-01-01 08:00:00.000 | [] | [] | [] | LZ4 | [] | [] | [] | [] | [] | [] | [] | [] | [] | [] |
| 2022-10-04 | 0028c85aeceda9adb3d5f1cb7cd84356_30_35_1 | 7da68bd2-f7b0-4173-b549-6287feb95f15 | Wide | 1 | 57 | 452312 | 61955957 | 61941531 | 102444781 | 12312 | 0 | 0 | 0 | 2022-10-05 09:43:38.000 | 1970-01-01 08:00:00.000 | 1 | 1970-01-01 | 1970-01-01 | 1970-01-01 08:00:00.000 | 1970-01-01 08:00:00.000 | 0028c85aeceda9adb3d5f1cb7cd84356 | 30 | 35 | 1 | 30 | 3863 | 19712 | 0 | SZ | .inner.ck_sz_flow_prod_traffics_sum_mv_unif | ReplicatedAggregatingMergeTree | default | /data4/jdolap/clickhouse/data/data/SZ/%2Einner%2Eck_sz_flow_prod_traffics_sum_mv_unif/0028c85aeceda9adb3d5f1cb7cd84356_30_35_1/ | f9d024fb18e4c17037cdff66b7aacfc9 | a49eab6675e11b7d8e04d7a806c10707 | 08e65d2b8f9613883cb2e289fdbc555c | 1970-01-01 08:00:00.000 | 1970-01-01 08:00:00.000 | [] | [] | [] | LZ4 | [] | [] | [] | [] | [] | [] | [] | [] | [] | [] |
| 2022-10-04 | 0028c85aeceda9adb3d5f1cb7cd84356_36_36_0 | 10275fdf-9491-4b91-a4a2-e63d38505288 | Wide | 1 | 11 | 80825 | 10929758 | 10926905 | 17213806 | 2376 | 0 | 0 | 0 | 2022-10-05 09:43:39.000 | 1970-01-01 08:00:00.000 | 1 | 1970-01-01 | 1970-01-01 | 1970-01-01 08:00:00.000 | 1970-01-01 08:00:00.000 | 0028c85aeceda9adb3d5f1cb7cd84356 | 36 | 36 | 0 | 36 | 755 | 17088 | 0 | SZ | .inner.ck_sz_flow_prod_traffics_sum_mv_unif | ReplicatedAggregatingMergeTree | default | /data4/jdolap/clickhouse/data/data/SZ/%2Einner%2Eck_sz_flow_prod_traffics_sum_mv_unif/0028c85aeceda9adb3d5f1cb7cd84356_36_36_0/ | 7603db913ce9f461e12cfae91c787357 | a99b1c8484c16115393ffc2c2e13d949 | d7ee39c167442be26b38efa6e00b13ae | 1970-01-01 08:00:00.000 | 1970-01-01 08:00:00.000 | [] | [] | [] | LZ4 | [] | [] | [] | [] | [] | [] | [] | [] | [] | [] |
| 2022-11-16 | 01cec265be808584624dfbb996210ddc_0_28_2 | d2f4468b-7529-4df7-b52a-52f6c99403f0 | Wide | 1 | 205 | 1667781 | 222218419 | 222166704 | 389719346 | 44280 | 0 | 0 | 0 | 2022-11-17 09:44:40.000 | 1970-01-01 08:00:00.000 | 1 | 1970-01-01 | 1970-01-01 | 1970-01-01 08:00:00.000 | 1970-01-01 08:00:00.000 | 01cec265be808584624dfbb996210ddc | 0 | 28 | 2 | 0 | 13919 | 27136 | 0 | SZ | .inner.ck_sz_flow_prod_traffics_sum_mv_unif | ReplicatedAggregatingMergeTree | default | /data4/jdolap/clickhouse/data/data/SZ/%2Einner%2Eck_sz_flow_prod_traffics_sum_mv_unif/01cec265be808584624dfbb996210ddc_0_28_2/ | 9d8b76be597d753d1c3356c17df781fb | 24fbd9da0257de8e2922fb029cb84298 | 909dd97ae772ffdcbcec6a5c5818830b | 1970-01-01 08:00:00.000 | 1970-01-01 08:00:00.000 | [] | [] | [] | LZ4 | [] | [] | [] | [] | [] | [] | [] | [] | [] | [] |
| 2022-11-16 | 01cec265be808584624dfbb996210ddc_29_35_1 | 77072487-2ad2-41d4-8b18-428485a97d3d | Wide | 1 | 80 | 641196 | 76781796 | 76761559 | 137624645 | 17280 | 0 | 0 | 0 | 2022-11-17 09:44:42.000 | 1970-01-01 08:00:00.000 | 1 | 1970-01-01 | 1970-01-01 | 1970-01-01 08:00:00.000 | 1970-01-01 08:00:00.000 | 01cec265be808584624dfbb996210ddc | 29 | 35 | 1 | 29 | 5442 | 20736 | 0 | SZ | .inner.ck_sz_flow_prod_traffics_sum_mv_unif | ReplicatedAggregatingMergeTree | default | /data4/jdolap/clickhouse/data/data/SZ/%2Einner%2Eck_sz_flow_prod_traffics_sum_mv_unif/01cec265be808584624dfbb996210ddc_29_35_1/ | a9734f74cf97edcd91fbf55afacebeea | 243f9f307cc035c95e164462b920e095 | 4a2a2498e76a90951d3913706aaf3f9a | 1970-01-01 08:00:00.000 | 1970-01-01 08:00:00.000 | [] | [] | [] | LZ4 | [] | [] | [] | [] | [] | [] | [] | [] | [] | [] |
| 2022-11-16 | 01cec265be808584624dfbb996210ddc_36_38_1 | 9fa94415-761b-4ff4-8307-375d206e751b | Wide | 1 | 28 | 214776 | 27538566 | 27531444 | 46496187 | 6048 | 0 | 0 | 0 | 2022-11-25 17:33:13.000 | 1970-01-01 08:00:00.000 | 1 | 1970-01-01 | 1970-01-01 | 1970-01-01 08:00:00.000 | 1970-01-01 08:00:00.000 | 01cec265be808584624dfbb996210ddc | 36 | 38 | 1 | 36 | 1895 | 18048 | 0 | SZ | .inner.ck_sz_flow_prod_traffics_sum_mv_unif | ReplicatedAggregatingMergeTree | default | /data4/jdolap/clickhouse/data/data/SZ/%2Einner%2Eck_sz_flow_prod_traffics_sum_mv_unif/01cec265be808584624dfbb996210ddc_36_38_1/ | 638561282f589bcf0ac84764bc411d69 | 6e5965b7a49d44ccf399336c2ee908e2 | 250d570e1da112583e661b2054aaba9a | 1970-01-01 08:00:00.000 | 1970-01-01 08:00:00.000 | [] | [] | [] | LZ4 | [] | [] | [] | [] | [] | [] | [] | [] | [] | [] |
| 2022-10-22 | 056b70d640bb3c90db641200d3c92353_1_29_2 | 5135e64c-48ff-431f-99d2-5191366a43e7 | Wide | 1 | 165 | 1340465 | 202055226 | 202013610 | 326197596 | 35640 | 0 | 0 | 0 | 2022-10-23 09:44:34.000 | 1970-01-01 08:00:00.000 | 1 | 1970-01-01 | 1970-01-01 | 1970-01-01 08:00:00.000 | 1970-01-01 08:00:00.000 | 056b70d640bb3c90db641200d3c92353 | 1 | 29 | 2 | 1 | 11180 | 25088 | 0 | SZ | .inner.ck_sz_flow_prod_traffics_sum_mv_unif | ReplicatedAggregatingMergeTree | default | /data4/jdolap/clickhouse/data/data/SZ/%2Einner%2Eck_sz_flow_prod_traffics_sum_mv_unif/056b70d640bb3c90db641200d3c92353_1_29_2/ | bb68ec7de79c64862be7f07bea8f8622 | f65c0933777ba16673dbf7f57150f34f | 8d8115eae054fcfc28187c8411e9f61b | 1970-01-01 08:00:00.000 | 1970-01-01 08:00:00.000 | [] | [] | [] | LZ4 | [] | [] | [] | [] | [] | [] | [] | [] | [] | [] |
| 2022-10-22 | 056b70d640bb3c90db641200d3c92353_30_47_2 | 659f3239-e7ed-4f5a-92db-64a8de399b94 | Wide | 1 | 118 | 957120 | 135204834 | 135175059 | 226764448 | 25488 | 0 | 0 | 0 | 2022-11-05 12:45:09.000 | 1970-01-01 08:00:00.000 | 1 | 1970-01-01 | 1970-01-01 | 1970-01-01 08:00:00.000 | 1970-01-01 08:00:00.000 | 056b70d640bb3c90db641200d3c92353 | 30 | 47 | 2 | 30 | 7988 | 23040 | 0 | SZ | .inner.ck_sz_flow_prod_traffics_sum_mv_unif | ReplicatedAggregatingMergeTree | default | /data4/jdolap/clickhouse/data/data/SZ/%2Einner%2Eck_sz_flow_prod_traffics_sum_mv_unif/056b70d640bb3c90db641200d3c92353_30_47_2/ | 7166e86a330ba489e996410c7d0893ca | 6166eee467909edd86aacb39f9a358c8 | 6d79ab0951823ac550e870232274a567 | 1970-01-01 08:00:00.000 | 1970-01-01 08:00:00.000 | [] | [] | [] | LZ4 | [] | [] | [] | [] | [] | [] | [] | [] | [] | [] |
| 2022-08-10 | 07f198f3ed52cb396f1c8562a5fad39a_2_30_2 | 00000000-0000-0000-0000-000000000000 | Wide | 1 | 198 | 1608217 | 213424579 | 213374665 | 372204328 | 42768 | 0 | 0 | 0 | 2022-08-11 09:47:28.000 | 1970-01-01 08:00:00.000 | 1 | 1970-01-01 | 1970-01-01 | 1970-01-01 08:00:00.000 | 1970-01-01 08:00:00.000 | 07f198f3ed52cb396f1c8562a5fad39a | 2 | 30 | 2 | 2 | 13442 | 18944 | 0 | SZ | .inner.ck_sz_flow_prod_traffics_sum_mv_unif | ReplicatedAggregatingMergeTree | default | /data4/jdolap/clickhouse/data/data/SZ/%2Einner%2Eck_sz_flow_prod_traffics_sum_mv_unif/07f198f3ed52cb396f1c8562a5fad39a_2_30_2/ | 870092a0dbd0b64e0627fe1fe088bf2f | cb90dbd5c5a566b2757fc54f5b4a5cec | d04cf90866808d41292d607ef9076a57 | 1970-01-01 08:00:00.000 | 1970-01-01 08:00:00.000 | [] | [] | [] | LZ4 | [] | [] | [] | [] | [] | [] | [] | [] | [] | [] |
1.4 system.part_log
system.part_log表中记录了集群中所有MergeTree引擎表的分区的变更信息,如添加、合并、删除等变更操作的记录,该表的主要字段如下:
1 | event_type (Enum) — 数据片段发生的事件的类型。可以是以下值之一: |
表实例:
| query_id | event_type | event_date | event_time | event_time_microseconds | duration_ms | database | table | part_name | partition_id | disk_name | path_on_disk | rows | size_in_bytes | merged_from | bytes_uncompressed | read_rows | read_bytes | peak_memory_usage | error | exception |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MergeParts | 2022-12-03 | 2022-12-03 21:28:09.000 | 2022-12-03 21:28:09.763102 | 82500 | SZ | ck_sz_flow_shop_traffics_lead_sku_det_unif | 536a49488b6d0bb380805a2c61dafed8_0_105_3 | 536a49488b6d0bb380805a2c61dafed8 | disk6 | /data6/jdolap/clickhouse/data/data/SZ/ck_sz_flow_shop_traffics_lead_sku_det_unif/536a49488b6d0bb380805a2c61dafed8_0_105_3/ | 26393496 | 2958547224 | [‘536a49488b6d0bb380805a2c61dafed8_0_45_2’,’536a49488b6d0bb380805a2c61dafed8_46_88_2’,’536a49488b6d0bb380805a2c61dafed8_89_97_1’,’536a49488b6d0bb380805a2c61dafed8_98_105_1’] | 27896397760 | 26393496 | 18810910821 | 220684242 | 0 | ||
| DownloadPart | 2022-12-03 | 2022-12-03 22:02:22.000 | 2022-12-03 22:02:22.560593 | 13 | tmp_smoke_test | alerts_local01 | 202007_0_0_0 | 202007 | default | /data4/jdolap/clickhouse/data/store/9d9/9d9eaca2-a132-44d3-a2d8-a9c6355fe8bb/202007_0_0_0/ | 34 | 38200 | [] | 0 | 0 | 0 | 0 | 0 | ||
| DownloadPart | 2022-12-03 | 2022-12-03 22:02:22.000 | 2022-12-03 22:02:22.574827 | 12 | tmp_smoke_test | alerts_local01 | 202005_0_0_0 | 202005 | default | /data4/jdolap/clickhouse/data/store/9d9/9d9eaca2-a132-44d3-a2d8-a9c6355fe8bb/202005_0_0_0/ | 45 | 50337 | [] | 0 | 0 | 0 | 0 | 0 | ||
| DownloadPart | 2022-12-03 | 2022-12-03 22:02:22.000 | 2022-12-03 22:02:22.590592 | 12 | tmp_smoke_test | alerts_local01 | 202003_0_0_0 | 202003 | default | /data4/jdolap/clickhouse/data/store/9d9/9d9eaca2-a132-44d3-a2d8-a9c6355fe8bb/202003_0_0_0/ | 31 | 34890 | [] | 0 | 0 | 0 | 0 | 0 | ||
| DownloadPart | 2022-12-03 | 2022-12-03 22:02:22.000 | 2022-12-03 22:02:22.608454 | 13 | tmp_smoke_test | alerts_local01 | 202009_0_0_0 | 202009 | default | /data4/jdolap/clickhouse/data/store/9d9/9d9eaca2-a132-44d3-a2d8-a9c6355fe8bb/202009_0_0_0/ | 25 | 28267 | [] | 0 | 0 | 0 | 0 | 0 | ||
| DownloadPart | 2022-12-03 | 2022-12-03 22:02:22.000 | 2022-12-03 22:02:22.626437 | 13 | tmp_smoke_test | alerts_local01 | 202004_0_0_0 | 202004 | default | /data4/jdolap/clickhouse/data/store/9d9/9d9eaca2-a132-44d3-a2d8-a9c6355fe8bb/202004_0_0_0/ | 28 | 31578 | [] | 0 | 0 | 0 | 0 | 0 | ||
| DownloadPart | 2022-12-03 | 2022-12-03 22:02:22.000 | 2022-12-03 22:02:22.628814 | 16 | tmp_smoke_test | alerts_local01 | 202008_0_0_0 | 202008 | default | /data4/jdolap/clickhouse/data/store/9d9/9d9eaca2-a132-44d3-a2d8-a9c6355fe8bb/202008_0_0_0/ | 38 | 42609 | [] | 0 | 0 | 0 | 0 | 0 | ||
| DownloadPart | 2022-12-03 | 2022-12-03 22:02:22.000 | 2022-12-03 22:02:22.649889 | 18 | tmp_smoke_test | alerts_local01 | 202001_0_0_0 | 202001 | default | /data4/jdolap/clickhouse/data/store/9d9/9d9eaca2-a132-44d3-a2d8-a9c6355fe8bb/202001_0_0_0/ | 31 | 34887 | [] | 0 | 0 | 0 | 0 | 0 | ||
| DownloadPart | 2022-12-03 | 2022-12-03 22:02:22.000 | 2022-12-03 22:02:22.658375 | 15 | tmp_smoke_test | alerts_local01 | 202011_0_0_0 | 202011 | default | /data4/jdolap/clickhouse/data/store/9d9/9d9eaca2-a132-44d3-a2d8-a9c6355fe8bb/202011_0_0_0/ | 23 | 26059 | [] | 0 | 0 | 0 | 0 | 0 |
1.5 system.disks
system.disks表中记录了服务器节点配置的磁盘信息,主要字段如下:
1 | name (String) — 服务器配置中磁盘的名称。 |
表实例:
| name | path | free_space | total_space | keep_free_space | type |
|---|---|---|---|---|---|
| default | /data2/jdolap/clickhouse/data/ | 605149126656 | 1948901576704 | 0 | local |
| disk3 | /data3/jdolap/clickhouse/data/ | 630576390144 | 1948901576704 | 0 | local |
| disk6 | /data6/jdolap/clickhouse/data2/ | 746901942272 | 1948901576704 | 0 | local |
| disk7 | /data7/jdolap/clickhouse/data2/ | 648532381696 | 1948901576704 | 0 | local |
2.系统表应用实例
2.1查询ClickHouse集群中某张表的总存储量
clickhouse的系统表system.parts中记录了本节点中所有本地表磁盘使用情况。
如果需要查看一个分布式表的整体磁盘使用情况,第一种方法是在每个节点上查询system.parts表然后手动汇总起来,这显然实际操作起来不现实;第二种方法就是基于system.parts创建一张分布式表,这样直接查询分布式表就可以得到任意一张分布式表或本地表的磁盘使用情况。
我们部门的ck运维为system.parts创建了一张名为system.parts_all的分布式表,使用以下语句即可查询由ck_sz_trade_featrue_shop_index_info组成的分布式表的总存储量,单位为GB:
1 | SELECT |
2.2 ClickHouse磁盘使用率告警问题排查与解决
1.背景
在没有大量推数任务的情况下,ck集群突然出现了磁盘使用率告警:
【严重】【自定义分组】 分组: HT0_CK_Pub_41, ip: 11.13.123.105, 【/data7】磁盘使用率已连续3次大于90.0%[当前值:96%]。报警时间: 2022-11-09 06:06:06
经过查看节点磁盘监控发现,数据总量并没有凸增,但是磁盘data4和data0存储使用在下降,data6和data7在增加。
服务器的磁盘分区实际上就是将硬盘从物理上设置分隔,然后将不同的硬盘存储区域划分给不同的Linux系统目录使用。重新对一台服务的磁盘分区进行划分,其实就是修改该服务器的分区表,将不同的物理磁头、磁道、扇区划分给不同的磁盘分区。如下图磁盘使用率监控中的服务器为例,就是将整个服务器的硬盘按物理磁头、磁道、扇区分成了8个区域,这8个区域分别分配给/、/data1、/data2、/data3、/data4、/data5、/data6、/data7这8个系统目录。

2.排查
经过排查发现是ClickHouse的多磁盘存储机制中的move_factor配置参数起作用了,导致data4和data0两个磁盘上的数据自动往后续磁盘上移动。详情可以查看参考资料,在配置文件中会为每个磁盘配置一个move_factor参数,默认为0.1,也就是当磁盘存储使用率达到90%时,会自动根据迁移策略将磁盘中的某些part迁移到下一个磁盘中。
通过system.part_log等系统表可以定位到是哪几张表、哪几个part在进行数据迁移,sql实例如下:
1 | select |
3.解决
经过检查发现磁盘data4和data0的move_factor设置并不合理,先将该参数调整更小一些。然后将自动迁移到data6和data7上的part使用命令手动迁移回data4和data0。同时也尽可能删除了一些磁盘data4和data0上的无用数据。
手动迁移磁盘的命令如下,其中disk_name可以通过执行select * from system.disks获取:
1 | alter table xxx MOVE PART 'xxxxxxx' TO DISK 'disk_name'; |