Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux IO阻塞进程在';顶部';输出?_Linux_Performance_Io_Cpu - Fatal编程技术网

Linux IO阻塞进程在';顶部';输出?

Linux IO阻塞进程在';顶部';输出?,linux,performance,io,cpu,Linux,Performance,Io,Cpu,我有一个可以在不同数量的进程上并行化的分析。预计事情将是IO和CPU密集型的(如果有人好奇的话,非常高的吞吐量短读DNA对齐) 运行此服务器的系统是一个48核的linux服务器 问题是如何确定最佳进程数,以使总吞吐量最大化。在某一点上,流程可能会受到IO限制,因此添加更多的流程既没有好处,也可能有害 我能从标准系统监控工具中判断何时达到该点吗? top(或者可能是另一个工具)的输出是否能让我区分IO绑定进程和CPU绑定进程?我怀疑IO上阻塞的进程可能仍会显示100%的CPU利用率。您可以使用io

我有一个可以在不同数量的进程上并行化的分析。预计事情将是IO和CPU密集型的(如果有人好奇的话,非常高的吞吐量短读DNA对齐)

运行此服务器的系统是一个48核的linux服务器

问题是如何确定最佳进程数,以使总吞吐量最大化。在某一点上,流程可能会受到IO限制,因此添加更多的流程既没有好处,也可能有害

我能从标准系统监控工具中判断何时达到该点吗?
top(或者可能是另一个工具)的输出是否能让我区分IO绑定进程和CPU绑定进程?我怀疑IO上阻塞的进程可能仍会显示100%的CPU利用率。

您可以使用iostat和vmstat等工具来显示阻塞的进程在I/O上花费了多少时间。添加超出您需要的进程通常没有害处,但好处会减少。您应该衡量吞吐量与流程,作为总体效率的衡量。

当一个流程在IO上被阻塞时,它没有运行,因此不考虑时间。如果有另一个进程可以运行,那么它将运行;如果没有,则将时间计为“IO等待”,这是一个全局统计


IO等待将是一个有用的监视对象。它显示在顶部的标题中,类似于%iw。您可以使用iostat和vmstat等工具对其进行更详细的监控。Serverfault可能是一个更好的询问问题的地方。

即使是单个IO绑定的进程也很少显示高CPU利用率,因为操作系统已经安排了其IO,并且通常只是等待它完成。因此top无法准确区分IO绑定进程和仅定期使用CPU的非IO绑定进程。事实上,一个被所有IO绑定的进程严重超载、几乎无法完成任何事情的系统可能会表现出非常低的CPU利用率


仅使用top作为第一步,您实际上只需不断添加线程/进程,直到CPU利用率降低,以确定给定机器的近似配置。

通常,非阻塞线程的数量应等于处理器的数量。您是否可以使用非阻塞IO?如果您能将其应用到您的体系结构中,它可能会简化事情。