获取具有高 I/O 读取请求的文件名

Posted

技术标签:

【中文标题】获取具有高 I/O 读取请求的文件名【英文标题】:Get filename with High I/O read request 【发布时间】:2020-11-13 13:56:08 【问题描述】:

我的 Jenkins 服务器正在提供 5-10MB 的高读取 I/O,并且没有在其上运行 jenkins 作业。

我能够使用命令iotop -oP 找到进程(jenkins)

使用lsof -p 20874,我得到了超过 2500 个文件,这很难调试。

有什么方法可以让我获得读取 I/O 请求较高的 文件名

【问题讨论】:

【参考方案1】:
strace -p 20874

将显示该进程进行的所有文件操作。您可以使用 ctrl-c 中止 strace。某些文件可能被大量访问,strace 将显示该文件的文件 ID。那就干脆

ls -al /proc/20874/fd

查看该文件 id 指向的文件。

【讨论】:

【参考方案2】:

    创建 Jenkins 虚拟机的克隆

    开启克隆虚拟机,开始一一移除插件

    删除 Prometheus 指标插件 - 2.0.6 后,读取 I/O 现在稳定了

【讨论】:

以上是关于获取具有高 I/O 读取请求的文件名的主要内容,如果未能解决你的问题,请参考以下文章

nodejs 单线程 高并发

nodejs 单线程 高并发

iostat 命令

设备管理(读文件部分)

I/O模型剖析

read/write函数与(非)阻塞I/O的概念