如何将系统性能值量化为单个性能值

时间:2013-01-15 17:37:01

标签: java performance operating-system system metric

我有一个项目,我在网格中有多个节点作为存储和计算节点运行。这些节点是异构的,从专用服务器硬件到alix boards,甚至是运行OpenWRT的Mikrotik路由器板(虽然主要由alix板组成)。

我正在通过sigar java API收集系统性能指标,如RAM,SWAP和CPU使用率。这工作得很好。

我的下一个任务是获取这些性能值并将它们组合在一起,以便能够对主机进行排序,以便我可以说哪个主机最能处理计算请求。这几乎可以被认为是Windows为计算机提供Windows性能指数的性能分数。

我的第一次尝试是添加使用的RAM,SWAP和CPU使用百分比(对于Linux我将负载值缩放到0到1之间的值)。然后选择任何得分最低的主机进行计算操作。

有没有人对如何做到这一点有更好的了解。我的方式感觉非常“hacky”,而不是我想要接近这个项目的工作方式。

谢谢

1 个答案:

答案 0 :(得分:1)

我会估计任务的要求并将机器放在一起。你可能有很多小工作和一份大工作。如果首先分配小作业,则最大的服务器可能正忙,而较小的框可能太小。您可能希望将小任务分配给小型服务器,并让大型机器完成更大的任务。

您还将拥有需要更多CPU或更多内存的任务。

我不会考虑使用SWAP。 Java无法在SWAP空间中运行,因此您需要确保它永远不需要它。