用于磁盘 I/O 的“htop”?

用于磁盘 I/O 的“htop”?

我正在寻找一个ssh工具来显示哪个进程正在读取/写入哪个文件。

输出示例:

pid(或类似 htop 命令)|读取 mb/s |写入 mb/s |路径/到/file.txt

答案1

iotop这是我首先推荐的。您可以使用该-o标志来更精确。请记住,如果您使用 CentOS 和最新的内核版本之一,则必须编辑以下部分/usr/lib/python2.7/site-packages/iotop/data.py

def parse_proc_pid_status(pid):
    result_dict = {}
    try:
        for line in open('/proc/%d/status' % pid):
            if not line.strip(): continue
            key, value = line.split(':\t', 1)
            result_dict[key] = value.strip()
    except IOError:
        pass  # No such process

添加一行:if not line.strip(): continue

您还可以使用fuser以下命令来显示访问文件的进程:

fuser -v -m <file>

它只是不会显示该进程是否正在写入它。

您还可以lsof在文件本身上使用,或者通过管道输入 grep 来获取文件名或进程。

lsof /path/to/file
lsof | grep <filename>
lsof | grep <process>

为了准确地获得您想要的内容,您将必须使用组合,除非您已经知道正在写入的文件并且您只想查看写入该文件的进程。

相关内容