What determines memory speed of OpenVZ container?
I've run sysbench --test=memory --memory-block-size=1M --memory-total-size=1G run on several OpenVZ powered VPSs from different providers and observed memory bandwidth measured from 2920.06 MB/sec to 11980.72 MB/sec.
I've made several observations in different daytime. Rounded numbers below are in GB/s:

VPS1 |  2.9 -  3.6
VPS2 |  3.9 -  4.6
VPS3 |  7.0 -  7.4
VPS4 | 11.9 - 12.0

All VPSs are with 32bit OS, except VPS3. For reference I've benchmarked my old cheap laptop with DDR2 inside and got 4GB/s.
My guess is that memory bandwidth in container = practical memory bandwidth of hardware * available CPU share. Then assuming DDR3 on most nodes with, say, 12800MB/s throughput we can derive that VPS1 allows to use no more than ~28% of host CPU (3.6/12.8), VPS2 ~36%, etc. Am I right?


Looks like you almost right. Just run your test on my Virtuozzo container with 32 cores and 1 core. First run with 32 cores I get 10335.52 MiB/sec, second run with 1 core I get memory bandwidth 12130.58 MiB/sec. But tests with 1/10 core show result according your formula, so with limit on 10% cpu usage I have memory bandwidth only 1425.87 MiB/sec.

If you have more then one core, there could be problems with over-provisioning, when cloud provider sell more memory than it have on their hosts and it could cause problems with memory bandwidth.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.