有没有办法知道IO高时哪个文件正在被写?

2013-06-27 11:40:07 +08:00
 sdjl
有时请求较高, io就会跟着高, 用io分析工具能找到是哪个进程在写磁盘

但是, 有没有办法直接查看是哪个文件或文件夹正在被写?

另外, 为什么nginx静态文件请求较高时, 磁盘read和write都会跟着高呢? read能理解, 倒是为什么write也高? (没有开启日志功能)

nginx是否可以配置更多的内存用于静态文件访问? 如何配置?
2710 次点击
所在节点    问与答
8 条回复
qsun
2013-06-27 11:52:31 +08:00
dndx
2013-06-27 11:53:58 +08:00
就 nginx是否可以配置更多的内存用于静态文件访问 而言

是没有必要的,在内存足够的情况下,Linux 会自动使用内存来 cache 文件。
denger
2013-06-27 12:48:56 +08:00
@qsun iotop 不能看到在写哪个目录吧? 只能看 PID.

swap 有没有在写?
qsun
2013-06-27 13:16:58 +08:00
@denger 可以strace -p 加上PID,这样可以看见系统调用情况,就知道具体情况了。拿到fd去/proc一看就知道
sdjl
2013-06-27 14:45:54 +08:00
@qsun 能具体一点么? 目的是查到哪个文件正在被写, 不是查到哪个进程在写文件
@dndx 谢谢
swulling
2013-06-27 14:57:42 +08:00
@sdjl 可以找到某个进程打开的文件,这个很容易
wwwjfy
2013-06-27 15:07:16 +08:00
lsof -p PID
sdjl
2013-06-27 15:09:30 +08:00
@swulling 一个pid打开的文件非常多呢, 可能有几百个....

@wwwjfy 谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/73792

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX