偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

一篇學(xué)會(huì) IO 問(wèn)題排查

系統(tǒng) Linux
opensnoop通過(guò)追蹤open()系統(tǒng)調(diào)用顯示企圖打開(kāi)文件的進(jìn)程,可以用于定位配置文件或日志文件,有些場(chǎng)合用起來(lái)還是挺順手的。

一 背景

IO性能排查,只要工具齊全,按照套路排查,相對(duì)來(lái)說(shuō)還是比較容易查的。

二 一般步驟

2.1 預(yù)覽io性能是否有問(wèn)題

先通過(guò)top命令,檢查wa的cpu是否占用高,如果高,那就需要排查哪個(gè)進(jìn)程引起的IO問(wèn)題了,是否合理。

一般來(lái)說(shuō)還習(xí)慣先用df -h 和df -ih排查下磁盤空間是否占滿,inode節(jié)點(diǎn)是否占滿。

iostat 進(jìn)行普遍的磁盤性能觀測(cè),如下:

[root@localhost ~]# iostat -x -d  1
Linux 4.18.0-348.2.1.el8_5.x86_64 (localhost.localdomain) 2021年12月07日 _x86_64_ (8 CPU)
Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util
sda 5.81 1.22 309.14 101.03 0.08 0.37 1.39 23.45 19.39 3.88 0.12 53.21 82.55 4.62 3.25
scd0 0.03 0.00 0.70 0.00 0.00 0.00 0.00 0.00 9.97 0.00 0.00 26.24 0.00 10.15 0.03
scd1 0.01 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.22 0.00 0.00 0.17 0.00 0.89 0.00
dm-0 5.56 1.53 290.23 77.20 0.00 0.00 0.00 0.00 19.87 1.72 0.11 52.16 50.33 4.51 3.20
dm-1 0.07 0.00 1.49 0.00 0.00 0.00 0.00 0.00 0.88 0.00 0.00 22.65 0.00 0.89 0.01

解釋:

r/s  :   每秒發(fā)送給此磁盤的合并后讀請(qǐng)求數(shù)量。
w/s : 每秒發(fā)送給此磁盤的合并后寫(xiě)請(qǐng)求數(shù)量。
rkB/s : 每秒從磁盤讀取的數(shù)據(jù)量,單位是KB。
wkB/s: 每秒向此磁盤寫(xiě)入的數(shù)據(jù)量,單位是KB。
rrqm/s : 每秒合并的讀請(qǐng)求數(shù);加上%標(biāo)識(shí)合并的讀請(qǐng)求的百分比。
wrqm/s : 每秒合并的寫(xiě)請(qǐng)求數(shù);加上%標(biāo)識(shí)合并的寫(xiě)請(qǐng)求的百分比。
r_await:平均每個(gè)讀請(qǐng)求處理的平均時(shí)長(zhǎng),單位為ms,包括排隊(duì)時(shí)間和實(shí)際磁盤處理時(shí)間。
w_await: 平均每個(gè)寫(xiě)請(qǐng)求處理的平均時(shí)長(zhǎng),單位為ms,包括排隊(duì)時(shí)間和實(shí)際磁盤處理時(shí)間。
aqu-sz: 平均請(qǐng)求隊(duì)列的長(zhǎng)度
rareq-sz :平均讀請(qǐng)求大小,單位為KB。
wareq-sz: 平均寫(xiě)請(qǐng)求大小,單位為KB。
svctm:處理IO請(qǐng)求的平均時(shí)間,不包括等待時(shí)間,不可信尷尬。
%util : 向設(shè)備發(fā)出I/O請(qǐng)求所占用的時(shí)間百分比(設(shè)備的帶寬利用率)。當(dāng)該值為時(shí),設(shè)備飽和,串行服務(wù)的設(shè)備,接近100%,對(duì)于并行請(qǐng)求,并不能反應(yīng)磁盤設(shè)備極限。

其實(shí)man iostat 看的就比較清楚了,寫(xiě)下來(lái),只是為了記憶一遍,加深點(diǎn)印象。 說(shuō)明:

  • r/s+ w/s ,就是 IOPS;
  • %util ,就是我們前面提到的磁盤 I/O 使用率;
  • rkB/s+wkB/s ,就是吞吐量;
  • r_await+w_await ,就是響應(yīng)時(shí)間。

2.2 定位具體的IO大的任務(wù)

iostat 看整體性能是否達(dá)到了瓶頸,我們要排查具體哪個(gè)程序占用IO比較大,采用pidstat命令:

[root@localhost ~]# pidstat -d 1
Linux 4.18.0-305.3.1.el8.x86_64 (localhost.localdomain) 12/07/2021 _x86_64_ (56 CPU)

09:46:06 PM UID PID kB_rd/s kB_wr/s kB_ccwr/s iodelay Command
09:46:07 PM 0 4597 0.00 1502.91 0.00 0 xxxx

解釋:

UID : 用戶ID
PID : 進(jìn)程ID
kB_rd/s : 每秒讀取的數(shù)據(jù)大小 單位是 KB。
kB_wr/s: 每秒寫(xiě)的數(shù)據(jù)大小 單位是KB。
kB_ccwr/s: 每秒取消寫(xiě)請(qǐng)求數(shù)量大小,單位是KB。
iodelay :塊IO延遲,包括同步塊IO和換入塊時(shí)間,單位為時(shí)鐘周期

還可以通過(guò)iotop查看IO使用的排行,非常方便:

08:59:08 Total DISK READ :       0.00 B/s | Total DISK WRITE :       0.00 B/s
08:59:08 Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s
TIME TID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND
b'08:59:08 1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd --switched-root --system --deserialize 18'
b'08:59:08 2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd]'

centos有的版本需要單獨(dú)安裝:

yum install iotop

2.3 strace進(jìn)行追蹤

strace是跟蹤用戶空間的進(jìn)程的系統(tǒng)調(diào)用和信號(hào)傳遞的,非常給力。

# 比較簡(jiǎn)單的方式,-f會(huì)追蹤fork,或其線程。
strace -pf pid
# 更給力的
strace -tt -T -v -f -e trace=file -o /data/log/strace.log -s 1024 -p 23489
-tt 顯示毫秒時(shí)間
-T 顯示每次調(diào)用的花費(fèi)
-v 把調(diào)用環(huán)境變量也打印出來(lái),
-f 跟蹤目標(biāo)進(jìn)程包括所有子進(jìn)程
-e 控制跟蹤的事件和行為 file文件行為,process跟蹤進(jìn)程和進(jìn)程管理相關(guān)的系統(tǒng)調(diào)用,ipc跟蹤ipc通信的系統(tǒng)調(diào)用;network 跟蹤網(wǎng)絡(luò)相關(guān)系統(tǒng)調(diào)用;signal 跟蹤信號(hào)處理相關(guān)系統(tǒng)調(diào)用;desc 跟蹤文件描述符相關(guān)系統(tǒng)調(diào)用
-o 輸出到文件
-s 參數(shù)最長(zhǎng)字符串,1024

2.4 給力的filetop

linux 內(nèi)核在4.1以上版本的內(nèi)核支持bcc工具集合,這個(gè)工具集非常有用,比如這個(gè)filetop,查看具體文件的IO大小,如下:

[root@localhost tools]# ./filetop -C
Tracing... Output every 1 secs. Hit Ctrl-C to end
09:39:02 loadavg: 0.07 0.06 0.01 1/280 10779
TID COMM READS WRITES R_Kb W_Kb T FILE
10779 filetop 2 0 15 0 R loadavg
10779 filetop 1 0 4 0 R type
10779 filetop 1 0 4 0 R retprobe
10779 filetop 2 0 0 0 R _bootlocale.cpython-36.pyc

分別對(duì)應(yīng):tid線程id,comm 線程命令行, READS WRITES 讀寫(xiě)次數(shù), R_Kb W_Kb 讀寫(xiě)大小,T文件類型 FILE: 文件名。

centos安裝:

yum install bcc-tools

export PATH=$PATH:/usr/share/bcc/tools

三 額外bcc工具

3.1 execsnoop

這個(gè)也是bcc工具集合里面的工具,通過(guò) ftrace 實(shí)時(shí)監(jiān)控進(jìn)程的 exec() 行為,并輸出短時(shí)進(jìn)程的基本信息,對(duì)于一些奇怪的短時(shí)進(jìn)程的查找非常有幫助。

[root@localhost tools]# ./execsnoop
PCOMM PID PPID RET ARGS
dmsetup 11391 1787 0 /usr/sbin/dmsetup status --target thin-pool
pmie_check 11406 1 0 /usr/libexec/pcp/bin/pmie_check -C
sed 11408 11407 0 /usr/bin/sed -e s/"http://g /etc/pcp.conf
awk 11409 11407 0 /usr/bin/awk -F= \n/^PCP_/ && NF == 2 {\n exports=exports" "$1\n printf "%s=${%s:-\"%s\"}\n", $1, $1, $2\n }\nEND { print "export", exports }

3.2 opensnoop

opensnoop通過(guò)追蹤open()系統(tǒng)調(diào)用顯示企圖打開(kāi)文件的進(jìn)程,可以用于定位配置文件或日志文件,有些場(chǎng)合用起來(lái)還是挺順手的。

[root@localhost tools]# ./opensnoop 
PID COMM FD ERR PATH
1075 tuned 21 0 /proc/11378/cmdline
1075 tuned 21 0 /proc/11378/stat
1023 irqbalance 6 0 /proc/interrupts
1023 irqbalance 6 0 /proc/stat
1023 irqbalance 6 0 /proc/irq/15/smp_affinity
1023 irqbalance 6 0 /proc/irq/15/smp_affinity
1685 pmdaproc 7 0 /proc
1685 pmdaproc 7 0 /proc/11375/cmdline
責(zé)任編輯:武曉燕 來(lái)源: 今日頭條
相關(guān)推薦

2021-11-30 19:58:51

Java問(wèn)題排查

2021-09-14 07:26:26

組合問(wèn)題循環(huán)

2022-02-07 11:01:23

ZooKeeper

2022-01-02 08:43:46

Python

2021-09-28 08:59:30

復(fù)原IP地址

2022-04-12 08:30:52

回調(diào)函數(shù)代碼調(diào)試

2021-10-27 09:59:35

存儲(chǔ)

2023-03-13 21:38:08

TCP數(shù)據(jù)IP地址

2022-10-20 07:39:26

2021-04-29 10:18:18

循環(huán)依賴數(shù)組

2021-07-16 22:43:10

Go并發(fā)Golang

2022-11-14 08:17:56

2021-10-14 10:22:19

逃逸JVM性能

2021-10-29 07:35:32

Linux 命令系統(tǒng)

2023-11-01 09:07:01

Spring裝配源碼

2021-07-02 08:51:29

源碼參數(shù)Thread

2021-07-02 09:45:29

MySQL InnoDB數(shù)據(jù)

2023-01-03 08:31:54

Spring讀取器配置

2022-08-26 09:29:01

Kubernetes策略Master

2021-05-11 08:54:59

建造者模式設(shè)計(jì)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)