2015-02-11 78 views
0

我们有一个过程需要大约20个小时才能在我们的Linux机器上运行。我们希望加快速度,并且首先需要找出瓶颈。我们最好的选择是什么?分析Linux上长时间运行的进程的资源使用情况--CPU,内存,硬盘驱动器?

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

  1. N应该多少?
  2. 哪个工具可以提供这些统计数据的准确读数,并且工具本身正在运行的事实对干扰或破坏影响最小?
  3. 任何其他技巧,智慧的金块或对其他有用文档的引用将不胜感激,因为这似乎是这些任务之一,您可以在这些任务中耗费大量时间和错误开始新手。
+1

给[*此*](http://stackoverflow.com/a/378024/23771)一杆。这不是关于统计数据,而是关于寻找时间消耗。 – 2015-02-11 21:40:38

+0

如果您不知道进程CPU绑定或I/O绑定,可以从Gregg推荐的最简单的系统监视工具开始:http://www.slideshare.net/brendangregg/linux-performance-analysis- and-tools Linux性能分析和工具(SCaLE11x,2013) - 像'top'(CPU使用率应该接近CPU限制任务的thread_count * 100%)和'iostat'来检查磁盘活动。您也可以检查顶部的“Cpu(s)”行来检查'%sy' - linux内核cpu负载。列出了更多工具,'sar','vmstat','mpstat','iostat'会每N秒显示一次统计数据。迈克,401k的意见是超过242k。 – osgx 2015-03-03 07:29:42

回答

0

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

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

http://munin-monitoring.org/

这里是你可以从穆宁得到什么一个例子:http://demo.munin-monitoring.org/munin-monitoring.org/demo.munin-monitoring.org/所有的

2

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

第一次运行时需要进行监控,即不知道其资源利用率(CPU,内存,磁盘等)。 您可以按照下列程序进行下钻的瓶颈,

  1. 监控系统资源(一般10-20秒的时间间隔应罚款与穆宁,神经节或其他工具)。 在这里,你应该能够确定你的hw是否瓶颈或者你的资源用完了。 100%cpu util,非常低的内存,高io等

如果这你的情况,那么可能考虑升级hw或调整现有的。

  1. 然后您调整您的应用程序/实用程序。使用分析器/记录器找出哪个方法,过程需要时间。尝试调整该过程。如果你有单线程代码,那么可能使用并行性。如果涉及数据库等尝试调整您的查询,数据库参数。

然后再次运行与监控测试,以向下钻取更多:)

相关问题