在Linux上分析长时间运行的进程的资源使用情况 - CPU,内存,硬盘驱动器?

时间:2015-02-11 18:43:09

标签: linux performance profiling

我们的Linux程序运行大约需要20个小时。我们希望加快速度,并且首先需要确定瓶颈。这样做的最佳选择是什么?

我正在考虑每隔N秒对进程的CPU,RAM和磁盘使用情况进行抽样。所以除非你有其他建议,否则我的具体问题是:

  1. N应该多少?
  2. 哪种工具可以提供这些统计数据的准确读数,而且工具本身运行的干扰或干扰最小?
  3. 任何其他提示,智慧的小块或对其他有用文档的引用都会受到赞赏,因为这似乎是这些任务中的一个,你可以在新手中犯下大量耗时的错误和错误的启动。 / LI>

2 个答案:

答案 0 :(得分:2)

首先,你想要什么和你问的是完全不同的。

首次运行时需要进行监控,即当您不知道其资源利用率(CPU,内存,磁盘等)时。 您可以按照以下步骤深入了解瓶颈,

  1. 监控系统资源(对于Munin,神经节或其他工具,通常10-20秒间隔应该没问题)。 在这个你应该能够确定你的hw是否是瓶颈,即你的资源是否已耗尽。 100%cpu util,非常低内存,高io等。
  2. 如果你的情况如此,那么可能会考虑升级hw或调整现有的。

    1. 然后调整您的应用程序/实用程序。使用分析器/记录器找出哪个方法,过程需要时间。尝试调整该过程。如果你有单线程代码,那么可能使用并行性。如果涉及DB等,请尝试调整查询,DB params。
    2. 然后再次通过监控运行测试以深入了解更多:)

答案 1 :(得分:0)

我认为图表表示应该有助于解决您的问题,我建议您Munin。

这是一个带有Web界面的资源监控工具。默认情况下,它监控磁盘IO,内存,CPU,平均负载,网络使用情况......它轻巧,易于安装。开发自己的插件并设置警报阈值也很容易。

http://munin-monitoring.org/

以下是您可以从Munin获得的一个示例:http://demo.munin-monitoring.org/munin-monitoring.org/demo.munin-monitoring.org/