我正试图追查我在Linux下正在调试的应用程序中的性能瓶颈原因。所涉及的各种过程似乎花费了大量时间阻止I/O请求,并且我想知道是否有人知道任何可以让您看到为什么特定进程被阻止/它正在等待的资源的Linux技巧?例如,/proc
有什么用?如何判断Linux进程正在等待什么?
17
A
回答
13
无论它是什么过程,您都使用top
来检查状态。然后你可以运行它通过truss or strace。这应该详细说明发生了什么。如果这是不可能的,请拨吧直至gdb。像iostat这样的工具可能会告诉你一般情况如何(例如,如果磁盘是瓶颈的话)。
7
您可以使用strace
命令查看您的过程要做什么。您也可能发现在您的进程上运行lsof
以查看它正在使用的文件和套接字是非常有用的。
6
strace是你的朋友,因为你可以花费在每个系统调用中的时间,再加上你可以选择你感兴趣的文件描述符和系统调用。但你也可以从内核获得支持:看看latencytop
相关问题
- 1. Linux“top”:如何判断哪个进程是什么?
- 2. 如何判断Python等待Selenium?
- 3. 如何判断C++程序何时等待输入?
- 4. onblur - 如何判断点击的内容;或如何判断一个onclick事件正在等待运行
- 5. 如何判断当WCHAN = flock_lock_file_wait时,Apache正在等待哪个文件
- 6. 如何判断您的火花作业是否正在等待资源
- 7. Linux正在等待另一个守护进程启动
- 8. 在linux上,如何等待多个子进程?
- 9. 使用Linux系统调用等待的进程等待
- 10. C#如何判断哪个进程正在使用文件?
- 11. 如何等待进程子进程?
- 12. 如何中断一个正在等待的C++ 0x线程?
- 13. 如何中断正在等待recv函数的线程?
- 14. 如何判断touchesBegan中正在触摸什么对象?
- 15. 如何判断我正在收到的是什么样的asn1
- 16. 如何判断等待事件是否超时?
- 17. windows进程正在等待lsass
- 18. 等待进程
- 19. Linux如何等待远程pid(telnet)
- 20. 什么是“等待线程”?
- 21. 如何判断JavaScript什么都不做?
- 22. 如何判断Chrome应用程序正在使用什么操作系统?
- 23. python如何知道子进程是否正在等待输入
- 24. 等待子进程
- 25. 等待子进程
- 26. 线程和正在等待
- 27. 线程正在等待ThreadPoolExecutor
- 28. 什么是等待?
- 29. 如何等待子进程在父进程中设置变量?
- 30. 如何等待进程结束C++