文件夹软链接测试及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 参数显示线程 idps 获取到 pid 和程序路径后,发现是 rabbit进程
strace -f -p 11471  trace 一下他在做什么
ll /proc/{zk_pid}/fd/trace命令显示的fd号 根据 fd 号去看看这是什么文件

 

posted @ 2023-03-07 14:10  坚强的小蚂蚁  阅读(75)  评论(0编辑  收藏  举报