文件夹软链接测试及IO排查
1. 给文件夹创建软链接
首先创建一个真实的文件夹 cd / mkdir test1 然后在data目录下创建软链接 cd /data ln -s /test1 test-soft
2. 在软链接目录下新建一个2G的文件
dd if=/dev/urandom of=3.txt bs=1M count=2048
3. iostat 监控硬盘写入情况
iostat -m 1 #每秒监测写入情况,以M为单位显示
4. 查看硬盘类型
lsblk -d -o name,rota
0表示固态硬盘
1表示机械硬盘
5. nload查看带宽
nload eth0
6. 排查IO操作
pidstat -d 1 :展示I/O统计,每秒更新一次 iotop -oP:只显示有I/O行为的进程
7. 实例
服务器使用iotop -oP发现有一个进程jbd2, 等待IO比较多
参考:https://easyice.cn/archives/328
执行下面命令
在 jbd2执行 flush 时输出日志 echo 1 > /sys/kernel/debug/tracing/events/jbd2/jbd2_commit_flushing/enable 在任意进程执行 sync 时输出日志 echo 1 > /sys/kernel/debug/tracing/events/ext4/ext4_sync_file_enter/enable 然后观察日志输出: cat /sys/kernel/debug/tracing/trace_pipe
输出内容如下
发现influxdb和10_dirty_io_sch-11471这俩服务进程占用比较多
10_dirty_io_sch-11471,后面的11471 进程的 tid,ps 看一下是哪个任务导致的
ps -efL |grep 11471 -L 或-T 参数显示线程 id,ps 获取到 pid 和程序路径后,发现是 rabbit进程
strace -f -p 11471 trace 一下他在做什么
ll /proc/{zk_pid}/fd/trace命令显示的fd号 根据 fd 号去看看这是什么文件
努力生活,融于自然