The solution to this problem is easy to implement in ESALPS. The VM processor requirements of the virtual machine are provided by VM and are accurate to the microsecond. Since we have the Linux data from almost exactly the same interval, we know what Linux thinks it used, and we know exactly what was used. From this point, it is a simple matter of prorating the Linux process CPU numbers based on actual use. For accounting purposes, the "prorate" value is externalized so that installations can see the variation and potentially apply this value to any internal accounting already implemented.
During analysis of this methodology, the granularity of the data is very important. If using the data for an hour or longer to determine the prorate value, on most workloads this would be off even as much as a factor of 2. The finer the granularity the more accurate the prorate value. ESALPS uses a one minute granularity, linux data is captured every minute and the cost of getting a finer granularity starts to become a noticeable expense.
This methodology is not accurate beyond 2 signficant figures, customer measurements have shown that the prorated values are within about 1-5% of actual. Thus, this is not perfect, but just by far the best technology for measuring Linux process data available at this time.