Clickhouse 性能瓶頸排查 IO過高


前幾天公司clickhouse 有個查詢很慢。經理一直追問為什么慢 是cpu 不夠 還是IO 占用太高,還是其他的原因。於是有了以下的排查 執行該條,在不考慮優化sql 的情況下 進行性能排查

 

 1、首先便是萬能的 top第三行CPU信息統計數據: 

%Cpu(s): 0.3 us, 0.2 sy, 0.0 ni, 99.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

```
 Cpu(s):  
  0.3% us:  用戶空間占用CPU百分比
  0.2% sy:  內核(系統)空間占用CPU百分比
  0.0% ni:   用戶進程空間內改變過優先級的進程占用CPU百分比
  99.7% id: 空閑CPU百分比
  0.0% wa: 等待輸入輸出的CPU時間百分比
  0.0%hi:  硬件CPU中斷占用百分比
  0.0%si:  軟中斷占用百分比
  0.0%st:  虛擬機(虛擬化技術)占用百分比

KiB Mem : 13142010+total, 54558996 free, 49383624 used, 27477484 buff/cache
  1004768k total: 物理內存總量
  463092k used: 使用的物理內存總量
  541676k free: 空閑內存總量
  64316k buffers: 用作內核緩存的內存量

KiB Swap: 67108860 total, 64400272 free, 2708588 used. 80281728 avail Mem

  694268k total:  交換區總量
  0 k used:    使用的交換區總量
  694268k free:  空閑交換區總量
  224884k cached:緩沖的交換區總量
```

未執行sql 

執行sql 時 

 


對比上面的,可以看出clickhouse 這個進程雖然cpu占用是200%,占比幾乎用到 2core,但是服務器總cpu使用率只有 4.4(服務器48core)。內存空閑也比較高。
然后還有一個就是wa 比較高,wa 對應的是 等待輸入輸出的CPU時間百分比。
於是猜測是io 較高(其實早就猜到io 高)於是有了重頭戲   pidstat  iostat

 2、pidstat


先清楚下clickhouse的緩存。

# clickhouse緩存是linux 的 page cache中

sync 
echo 3 >/proc/sys/vm/drop_caches

 

# 命令的含義:展示I/O統計,每秒更新一次 
pidstat -d 1

  

未執行sql時

11時24分33秒 UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
11時24分34秒 990 9048 26025.93 0.00 0.00 java
11時24分34秒 990 442735 10540.74 0.00 0.00 du

11時24分34秒 UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
11時24分35秒 990 9048 446176.00 0.00 0.00 java

11時24分35秒 UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
11時24分36秒 990 9048 22112.00 0.00 0.00 java

11時24分36秒 UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
11時24分37秒 990 9048 14436.00 0.00 0.00 java

11時24分37秒 UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
11時24分38秒 990 9048 20964.00 0.00 0.00 java

11時24分38秒 UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
11時24分39秒 990 9048 19136.00 0.00 0.00 java
11時24分39秒 0 247761 0.00 8.00 0.00 presto-server

```


在執行sql 的時候 執行了pidstat,命令顯示結果如下
```
11時21分47秒 UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
11時21分48秒 990 9048 12381.48 0.00 0.00 java
11時21分48秒 983 124101 0.00 3.70 0.00 java
11時21分48秒 963 348889 153166.67 3.70 0.00 clickhouse-serv

11時21分48秒 UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
11時21分49秒 990 9048 22996.00 0.00 0.00 java
11時21分49秒 962 78518 356.00 0.00 0.00 zabbix_agentd
11時21分49秒 963 348889 93948.00 0.00 0.00 clickhouse-serv

11時21分49秒 UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
11時21分50秒 0 1323 0.00 16.00 0.00 jbd2/sdb-8
11時21分50秒 0 4251 0.00 12.00 0.00 java
11時21分50秒 990 9048 17576.00 0.00 0.00 java
11時21分50秒 963 348889 150992.00 4.00 0.00 clickhouse-serv

11時21分50秒 UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
11時21分51秒 990 9048 24484.00 0.00 0.00 java
11時21分51秒 963 348889 151164.00 0.00 0.00 clickhouse-serv

11時21分51秒 UID PID kB_rd/s kB_wr/s kB_ccwr/s Command
11時21分52秒 990 9048 16096.00 0.00 0.00 java
11時21分52秒 1000 148747 0.00 8.00 0.00 mysqld
11時21分52秒 963 348889 175228.00 0.00 0.00 clickhouse-serv

  

很明顯clickhouse 讀磁盤io最大到了 175228.kB/s 換算成 171M/s。但這邊的clickhouse 數據目錄我是分到7塊磁盤,7塊磁盤的讀速度 171M/s 並不是很高,單塊磁盤表現好可以又120M/s。但此時性能的瓶頸差不多可以確定為IO

3、iostat

先清楚緩存

使用命令“iostat -x 1“確定哪個磁盤設備IO負載高:
iostat -x 1

 

 

我這邊掛在的時 data1 2 3 4 5 6 7

df -l

ev/sda1 1038336 145704 892632 15% /boot
/dev/sdf 2306651404 460825460 1728631192 22% /data5
/dev/sdh 2306651404 1097399924 1092056728 51% /data7
/dev/sdb 2306651404 1086978144 1102478508 50% /data1
/dev/sde 2306651404 796331792 1393124860 37% /data4
/dev/sdd 2306651404 899894556 1289562096 42% /data3
/dev/sdg 2306651404 628524548 1560932104 29% /data6
/dev/sdc 2306651404 1796066508 393390144 83% /data2

  

未執行sql時

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    5.00    8.00    13.00    56.00    10.62     0.01    0.69    1.80    0.00   0.69   0.90
sdb               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdc               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.37   46.75   46.75    0.00   6.38   5.10
sdd               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.51   64.00   64.00    0.00   8.62   6.90
sde               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.17   21.75   21.75    0.00   5.38   4.30
sdf               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.08    9.62    9.62    0.00   2.00   1.60
sdh               0.00     0.00   64.00    0.00  1812.00     0.00    56.62     0.14    2.12    2.12    0.00   1.28   8.20
sdg               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.12   15.00   15.00    0.00   2.00   1.60
sdi               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.13   16.75   16.75    0.00   2.25   1.80
sdj               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdk               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdl               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.16   19.88   19.88    0.00   2.62   2.10
sdn               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdo               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdm               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdp               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdq               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdr               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.20   25.62   25.62    0.00   6.12   4.90
sds               0.00     0.00    1.00    0.00    24.00     0.00    48.00     0.02   16.00   16.00    0.00  16.00   1.60
sdt               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    5.00    8.00    13.00    56.00    10.62     0.01    0.69    1.80    0.00   0.69   0.90
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.52    0.00    0.29    0.06    0.00   99.12

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdb               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.19   23.50   23.50    0.00   3.00   2.40
sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdd               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sde               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdf               0.00     0.00    1.00    0.00   128.00     0.00   256.00     0.00    0.00    0.00    0.00   0.00   0.00
sdh               0.00     0.00   13.00    0.00  2432.00     0.00   374.15     0.12    9.31    9.31    0.00   3.46   4.50
sdg               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdi               0.00     0.00    1.00    0.00   128.00     0.00   256.00     0.00    0.00    0.00    0.00   0.00   0.00
sdj               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.14   17.12   17.12    0.00   2.25   1.80
sdk               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.15   19.00   19.00    0.00   2.50   2.00
sdl               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdn               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.17   21.38   21.38    0.00   2.88   2.30
sdo               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.33   40.75   40.75    0.00   5.88   4.70
sdm               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.14   18.00   18.00    0.00   2.38   1.90
sdp               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.11   13.75   13.75    0.00   1.88   1.50
sdq               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.09   11.25   11.25    0.00   1.62   1.30
sdr               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sds               0.00     0.00    9.00    0.00  1828.00     0.00   406.22     0.20   22.78   22.78    0.00   2.67   2.40
sdt               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.01    1.50    1.50    0.00   0.38   0.30
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

  


執行sql時:

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00  448.00    2.00 15168.00     8.00    67.45     0.85    1.88    1.89    0.00   1.82  81.90
sdb               0.00     0.00 1481.00    0.00 190052.00     0.00   256.65    42.70   23.77   23.77    0.00   0.68 100.30
sdc               0.00     0.00    1.00    0.00   128.00     0.00   256.00     0.00    0.00    0.00    0.00   0.00   0.00
sdd               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.07    8.75    8.75    0.00   4.12   3.30
sde               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdf               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdh               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdg               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.16   19.75   19.75    0.00   5.12   4.10
sdi               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdj               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.37   46.38   46.38    0.00   7.62   6.10
sdk               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.19   24.00   24.00    0.00   3.12   2.50
sdl               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdn               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdo               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.13   16.12   16.12    0.00   5.50   4.40
sdm               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.01    1.50    1.50    0.00   0.25   0.20
sdp               0.00     0.00   10.00    0.00  2096.00     0.00   419.20     0.21   21.10   21.10    0.00   5.00   5.00
sdq               0.00     0.00 3869.00    0.00 15476.00     0.00     8.00     2.98    0.77    0.77    0.00   0.20  77.50
sdr               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.27   33.25   33.25    0.00   6.88   5.50
sds               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.20   24.50   24.50    0.00   3.12   2.50
sdt               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00  448.00    2.00 15156.00     8.00    67.40     0.85    1.89    1.90    0.00   1.82  81.80
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           9.43    0.00    2.47   29.14    0.00   58.96

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00  699.00    0.00  9424.00     0.00    26.96     0.50    0.72    0.72    0.00   0.59  40.90
sdb               0.00     4.00 1415.00    4.00 182672.00    32.00   257.51    49.25   37.00   37.11    0.00   0.71 100.30
sdc               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.02    2.50    2.50    0.00   0.50   0.40
sdd               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sde               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.17   21.12   21.12    0.00   2.88   2.30
sdf               0.00     0.00   19.00    0.00  4116.00     0.00   433.26     0.32   16.84   16.84    0.00   3.11   5.90
sdh               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.34   42.00   42.00    0.00   5.88   4.70
sdg               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdi               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.41   50.62   50.62    0.00   6.88   5.50
sdj               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdk               0.00     0.00    1.00    0.00   128.00     0.00   256.00     0.00    0.00    0.00    0.00   0.00   0.00
sdl               0.00     0.00    8.00    0.00  2048.00     0.00   512.00     0.31   38.88   38.88    0.00   5.25   4.20
sdn               0.00     0.00    6.00    0.00  1508.00     0.00   502.67     0.25   42.00   42.00    0.00   7.67   4.60
sdo               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdm               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdp               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sdq               0.00     0.00 3989.00    0.00 17968.00     0.00     9.01     1.58    0.40    0.40    0.00   0.19  77.40
sdr               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

  

 

很明顯 sdb 對於的磁盤 使用率達到了 100% 讀的速度為 155756kB/s 對於 152M/s

/dev/sdb 2306651404 1086978144 1102478508 50% /data1

data1 就是我們的一塊數據盤。

這下就時很明顯,改sql 查詢慢的瓶頸就是IO


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM