我有一个进行配置管理的守护进程。所有其他进程都应该与这个守护进程交互以实现它们的功能。但是当我执行一个大的 Action 时,几个小时后守护进程在 2 到 3 小时内没有响应。并在 2-3 小时后正常工作。
Linux 进程挂起问题的调试实用程序?
如何获取 linux 进程挂起的时间点?
最佳答案
- strace 可以显示最近的系统调用及其结果
- lsof 可以显示打开的文件
- 当写入日志消息来跟踪进度时,系统日志会非常有效。允许在较小的区域中解决问题。还将日志消息与来自其他系统的其他消息相关联,这通常会产生有趣的结果
- wireshark,如果应用程序使用套接字使有线聊天可见。
- ps ax + top 可以显示您的应用程序是否处于繁忙循环中,即一直在运行、休眠或阻塞在 IO 中、消耗 CPU、使用内存。
这些中的每一个都可能提供一些信息,这些信息共同构成了问题的全貌。
使用 gdb 时,在应用程序被阻止时触发核心转储可能很有用。然后你有一个静态快照,你可以在闲暇时使用事后调试进行分析。您可以让这些由脚本触发。您可以快速建立一组可用于检验您的理论的快照。
关于linux - Linux 进程挂起问题的调试实用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3035134/