我们检测到Solaris 10进程中的性能问题,并使用truss观察了对描述符268的太多写入。
我们手边没有这些东西,但是这里是一个文件输出的摘录:
[...] 268: S_IFREG mode:0644 dev:321,11003 ino:13621 uid:101 gid:105 size:100014416 O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE [...]
有没有办法从这个信息知道真正的文件path?
谢谢。
ino值是文件系统上的文件的inode,在你的情况下,你可以使用find的-inum选项,例如$ filesystem_name是你的机器上的一个文件系统:
find /$filesystem_name -inum 13621
Inode对于每个文件系统都是唯一的,所以如果你有多个文件系统,你可能需要单独检查它们。
在网上有一些很好的dtrace脚本来查找文件系统上的活动:
文件path应该显示在你发布的行后面。 如果它不在那里,它很可能早就被删除了。
您可以查找导致文件句柄268的open()调用,并查看它所调用的参数。
我不熟悉Solaris的/ proc文件系统的详细信息,但/ proc / fd / linux下有一个打开的文件描述符列表以及它们打开的内容; 如果Solaris有类似的东西,那可能会有所帮助。