我现在正在pipe理计算机集群进行科学计算。 群集中的一些进程需要大量的io使用。 现在我find了这样一个过程:
top产出中,爱荷华州为0%,闲置约为90% 我认为这个过程可能有一些问题,但是过程所有者声称它正在正确运行,因为它仍然在向磁盘写入数据。
更多信息:
问题:
The process is writing data to a remote disk mounted on /home
有可能你的答案。 过程状态D不是DOWN ,它是不可中断的睡眠 ,通常意味着一些I / O完成。 由于您拥有networking共享,因此根据条件的不同,它可能不会在I / O等待您时显示,并且在系统等待时可能不会消耗太多CPU。
但是,对于您和您的应用程序来说,如果由于应用程序的写入方式,networking共享速度缓慢,由于networking或文件服务器性能的原因,networking共享速度会很慢。
如何找出你的应用程序或networking共享是什么原因? 简单 – 使用其他工具和其他使用模式testingnetworking共享性能。 将大量数据从/ home复制到其他位置,然后运行一些基准testing(如iozone ,使用iperftesting原始networking性能iozone 。
如果那些给你合理的结果,然后去看看你的应用程序正在做什么。
虽然很多时候这个原因在于其他地方, 不知道你的系统,我猜你需要调整NFS挂载设置。 但是,现在它只是一个猜测,因为我不知道你是否有使用NFS。
如果CPU不忙,那么你的过程大概是在等待外部的东西。 我想通过查看哪些系统调用时间最长可以了解一下这个问题。
下降了,尝试使用一个分析器来找出代码在做什么。
你的代码是否使用mmap'd IO? 我在想,可能不会像iowait时间那样报告你的进程,但是当把页面刷新到磁盘时,会变成一个使用大量磁盘的系统进程。