Search code examples
benchmarkingperformance-testingestimation

How to estimate an application's performance(CPU, I/O, Memory)


Known: An application run performance on a server

  • Performance metrics: cpu, i/o, memory
  • Server hardware information: CPU(core number,main frequency, etc.), memory, i/o

Question: If there is a new server and I can get the new server's hardware information, how to estimate the application run performace(get performacne metrics) without running it on the new server?

Any suggestions, directions? Thanks a lot~


Solution

  • It is hard, there could be changes in the processor instructions, slower buses, slower disks(HDD vs SDD, the seek time will increase utilization for the first option), you will need to account for all of them, you will need to know how does your system uses every one of them, but the problem does not end here, there could be soft limits, it is possible that the test don't even use all the resources, it is easier to just get the machine and run the test on the actual hardware.

    This video is a presentation about performance testing by Goranka Bjedov, she was a google software engineer.

    https://youtu.be/k9h51BM2h4

    At the end of the talk, in the question section somebody talks about results extrapolation. These are the answers to the question:

    "So i tell you a couple of things at google i am lucky right, because machines in our data center we don't have supercomputers, unless you look at how we have organized the machines, they do act as one, but really are individual boxes, they are pretty much the same as the boxes that i'll have in the office, so i'm very lucky in that respect"

    https://youtu.be/k9h51BM2h4w?t=3704

    "You have a real problem, i mean you really want get some time on that machine before it goes load in production, and if the system is not already load in production, it should be not that difficult to get it for a week or a weekend or something so you get some data on how is behaving, because you can't extrapolate the results from an ***, you don't even know, i mean it is a different operating system, everything is different. Umm, extrapolation will kill you, interpolation is great but extrapolation will kill you, because things just go wrong were you didn't expect, or run out of some resource that you never expected."

    https://youtu.be/k9h51BM2h4w?t=3780