title: How to quantify system performance values into a single performance value
body: <p>I have a project where I have multiple nodes in a grid that are operating as storage and compute nodes. These nodes are heterogeneous ranging from dedicated server hardware to <a href="http://pcengines.ch/alix.htm" rel="nofollow">alix boards</a> and even Mikrotik routerboards running OpenWRT(consisting of mostly the alix boards though). </p>
  
  <p>I am collecting system performance metrics such as RAM, SWAP and CPU usage through the <a href="http://www.hyperic.com/products/sigar" rel="nofollow">sigar java API</a>. This is working really well. </p>
  
  <p>My next task is to take these performance values and combine them in a way that I would be able to sort my hosts in such a way that I could say which host is best able to handle a compute request. This can almost be thought of as the same way windows gives your computer a performance score with the windows performance index.</p>
  
  <p>My first attempt at this was to add the used percentages of RAM, SWAP and CPU usage ( for Linux I scaled the load value to a value between 0 and 1). Whichever host scored the lowest was then selected for the compute operation.</p>
  
  <p>Has anyone got a better idea on how to do this. My way felt very "hacky" and not the sort of way I want to approach the work in this project.</p>
  
  <p>Thanks </p>