gpt4 book ai didi

linux - 在 GNU/Linux 中如何记录正在使用磁盘的进程或内核事件?

转载 作者:IT王子 更新时间:2023-10-29 00:25:10 26 4
gpt4 key购买 nike

在特定的 Debian 服务器上,iostat(和类似的)报告正在进行的磁盘写入量异常高(以字节为单位)。我无法确定是哪个进程在执行这些写入操作。

两个有趣的点:

  1. 尝试一次关闭一个系统服务,但无济于事。磁盘事件保持相当稳定且异常高。

  2. 尽管进行了写入,但似乎并未占用更多磁盘空间。

这两个让我认为写入可能是内核正在做的事情,但我没有交换,所以我不清楚 Linux 可能会尝试写入什么。

可以试试:

http://www.atcomputing.nl/Tools/atop/

但我想避免修补我的内核。

关于如何追踪这个的任何想法?

最佳答案

iotop 很好(实际上很棒)。

如果您有 2.6.20 之前的内核,则无法使用这些工具中的大部分。

相反,您可以尝试以下操作(这应该适用于几乎所有 2.6 内核 IIRC):

    sudo -sdmesg -c/etc/init.d/klogd stopecho 1 > /proc/sys/vm/block_dumprm /tmp/disklogwatch "dmesg -c >> /tmp/disklog"   CTRL-C when you're done collecting dataecho 0 > /proc/sys/vm/block_dump/etc/init.d/klogd startexit (quit root shell)cat /tmp/disklog | awk -F"[() \t]" '/(READ|WRITE|dirtied)/ {activity[$1]++} END {for (x in activity) print x, activity[x]}'| sort -nr -k2

dmesg -c 行清除您的内核日志。然后关闭记录器,手动(使用 watch)转储到磁盘(内存缓冲区很小,这就是我们需要这样做的原因)。让它运行大约五分钟左右,然后按 CTRL-c 监视进程。关闭日志并重启klogd后,最后使用awk分析一下结果。

关于linux - 在 GNU/Linux 中如何记录正在使用磁盘的进程或内核事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/249570/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com