微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在linux中检测异常长的文件锁?

我的 linux服务器上有争议点.许多进程中的一个进程访问单个文件并在随机时间锁定文件一段相当长的时间(> 60秒),这反过来又导致其他事情失败.

有没有办法检测文件被锁定的时间以及进程?

解决方法

我认为你要找的是文件/ proc / locks.它显示系统中的当前文件锁.这不显示文件已被锁定多长时间,但它显示了哪个进程.也许您可以检测锁定何时在此文件注册并测量经过的时间.一个样本是这样的:
cat /proc/locks 
1: POSIX  ADVISORY  WRITE 2245 08:06:1182714 1073741824 1073741824
2: POSIX  ADVISORY  WRITE 2245 08:06:1182714 1073741826 1073742335
3: POSIX  ADVISORY  WRITE 3058 08:06:10752740 0 0
4: POSIX  ADVISORY  WRITE 3058 08:06:10752739 0 0
5: POSIX  ADVISORY  WRITE 2421 08:06:10752766 0 EOF
6: POSIX  ADVISORY  WRITE 2421 08:06:11142048 0 EOF
7: POSIX  ADVISORY  WRITE 2421 08:06:9964366 1073741824 1073742335
8: POSIX  ADVISORY  WRITE 2421 08:06:11142040 0 EOF

列是:

>第一:锁定#.>第二种:锁定类型(如果使用fcntl创建锁定,则为POSIX;如果使用flock创建,则为FLOCK).>第三:锁定模式(ADVISORY或MANDATORY)> Forth:锁定类型(WRITE或READ),对应于锁共享或独占.>第五:带锁的过程的PID.>第六:三个数字分隔:识别锁定文件.>第七:锁的起始字节.> Eighth:锁定的结束字节

原文地址:https://www.jb51.cc/linux/395739.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐