【发布时间】:2011-07-01 07:20:09
【问题描述】:
我的应用程序正在使用 pread64/pwrite64 对原始 /dev/sdb 块设备执行一些繁重的 IO。有时它做得很好。调用 pread64/pwrite64 通常只需 50-100us。但有时需要更长的时间,最多几秒钟。
您有什么建议可以找到导致此类问题的原因?
【问题讨论】:
我的应用程序正在使用 pread64/pwrite64 对原始 /dev/sdb 块设备执行一些繁重的 IO。有时它做得很好。调用 pread64/pwrite64 通常只需 50-100us。但有时需要更长的时间,最多几秒钟。
您有什么建议可以找到导致此类问题的原因?
【问题讨论】:
我没用过,但听说有一个叫latencytop的工具。
【讨论】:
当它像这样挂起时,抓住stackshot。另一个选项是 pstack 或 lsstack。 正如@Zan 指出的那样,latencytop 也可以为您提供这些信息。
这可能无法完全回答您的问题,但至少您可以肯定地知道它在挂起时试图做什么。
【讨论】: