linux - Linux 进程挂起问题的调试实用程序?

标签 linux process freeze

我有一个进行配置管理的守护进程。所有其他进程都应该与这个守护进程交互以实现它们的功能。但是当我执行一个大的 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/

相关文章:

Linux 脚本 - 如何在注销时保持运行?

linux - FreeBSD 调度器和 Linux 调度器的区别

java - 为什么hang()方法只执行一次?

php - html/CSS 格式中的小错误卡住 PHP 生成的 SQL 表中的第一列

linux - Bash 脚本不会生成 cat 的子进程

iphone - 选择多个图像的问题

c - tee 总是返回 EINVAL

java - 检测插入的 usb 并使用 java 在 linux 中读取其文件

C# 获取音频进程列表

windows - Windows 服务和 Windows 进程之间有什么区别?