监控 tmpfs 分区的 IO?

监控 tmpfs 分区的 IO?

如何监控 tmpfs 分区的写入速度。它没有出现在 vmstat 或 iostat 的输出中。

我正在运行几个 python 进程,它们大量写入 tmpfs 并增加负载。负载很高,但 CPU、内存、磁盘 IO 等都很正常。负载似乎以某种方式间接考虑了这个繁重的 tmpfs IO。我很想知道写入速度,以便了解每个主机的上限。我盲目运行,任何帮助都将不胜感激。

答案1

tmpfs不是块设备,因此普通的 I/O 监控工具对您没有用。

监控写入速度的一种方法是使用pv命令。pv管道查看器允许您在通常会被黑匣子的情况下查看有关当前进程的统计信息,例如在压缩巨大的日志文件或创建 tar 球期间。

典型的用例pv包括如下内容:

pv /path/to/your/log | gzip >/logarchivedir/log.gz
tar cvfz - /your/directory | pv >/outputdir/yourdir.tar.gz

我希望这对您有帮助;您没有告诉我们任何详细信息。

答案2

我也有同样的监控需求——我想到/dev/shm可以将其安装到循环设备(即/dev/loop0),然后可以监控该循环设备 [1]。问题是循环设备需要一个用其自己的文件系统格式化的静态文件,而这会破坏 tmpfs 的速度优势。

但请注意,虽然 tmpfs 无法轻易监控,/dev/ram0但默认情况下可以监控。

也许 Linux 专家可以评论一下 tmpfs 是否可以直接安装到循环设备,我不确定。

[1] iostat 似乎没有报告循环设备的统计信息(在 linux 3.14.27/fedora 19 上测试)。

相关内容