1.iostat確定使用率高的容器
通過執行命令,找到io使用率高的device
# 在容器執行以下命令,查看io使用率是否高
$iostat -x 1
# 通過以下內容我們看到dm-39使用率比較高
Linux 3.10.0-693.5.2.el7.jd_3313.x86_64 (xxxx-xxxxx-1230843875757658112) 03
/25/2020
_x86_64_ (64 CPU)
avg-cpu: %user %
nice
%system %iowait %steal %idle
2.61 0.00 1.07 0.17 0.00 96.16
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 4059.00 1033.00 10002.00 32736.00 100704.00 24.18 0.83 0.08 0.44 0.04 0.04 48.90
...
dm-39 0.00 0.00 1031.00 10882.00 32536.00 53928.00 14.52 0.79 0.07 0.43 0.03 0.04 44.10
...
|
2. 根據Device查找對應的容器名稱
登錄容器所在的物理機執行以下命令
# 切換到/dev/mapper目錄,該目錄防止了Device和容器的Link
$
cd
/dev/mapper/
# 查看Link信息
$
ls
-alh |
grep
dm-39
# 根據以下返回信息,我們可以定位到dm-39對應的容器名稱包含74a316e4_54ac_11ea_836d_246e96abba70
# lrwxrwxrwx 1 root root 8 Feb 25 15:58 docker-74a316e4_54ac_11ea_836d_246e96abba70 -> ../dm-39
|
3.根據容器名稱查找POD
通過2步已經獲取到容器名稱74a316e4_54ac_11ea_836d_246e96abba70,我們直接使用容器名稱的前綴74a316e4就可以過濾出容器
$ docker
ps
|
grep
74a316e4
# 根據返回內容就可以定位到具體的POD
ed514c9ee577 09986390982a "/usr/sbin/init" k8s_xxxxx_xxxxx-xxxxx-
1230843875757658112_xxxxxx_74a316e4-54ac-11ea-836d-246e96abba70_0
7bab556b2e0b pause "/pause" k8s_POD_xxxxx-xxxxx-1230843875757658112_xxx-xxxxx_74a316e4-54ac-11ea-836d-246e96abba70_0
|
根據以上步驟就可以定位到具體的容器,然后根據容器的監控再分析為什么io會高