От чего зависит скорость памяти контейнера OpenVZ?
Я бегал sysbench --test=memory --memory-block-size=1M --memory-total-size=1G run
на нескольких VPS на базе OpenVZ от разных провайдеров и наблюдаемая пропускная способность памяти, измеренная от 2920,06 МБ / с до 11980,72 МБ / с.
Я сделал несколько наблюдений в разное время дня. Округлые числа ниже указаны в ГБ / с:
VPS1 | 2.9 - 3.6
VPS2 | 3.9 - 4.6
VPS3 | 7.0 - 7.4
VPS4 | 11.9 - 12.0
Все VPS работают с 32-битной ОС, кроме VPS3. Для справки я протестировал свой старый дешевый ноутбук с DDR2 внутри и получил 4 ГБ / с.
Я предполагаю, что пропускная способность памяти в контейнере = практическая пропускная способность памяти оборудования * доступная доля ЦП. Затем, предполагая DDR3 на большинстве узлов с пропускной способностью, скажем, 12800 МБ / с, мы можем сделать вывод, что VPS1 позволяет использовать не более ~ 28% центрального процессора (3,6 / 12,8), VPS2 ~ 36% и т. Д. Я прав?
Похоже, ты почти прав. Просто запустите свой тест на моем контейнере Virtuozzo с 32 ядрами и 1 ядром. Первый запуск с 32 ядрами я получаю 10335.52 MiB/sec
, второй запуск с 1 ядром я получаю пропускную способность памяти 12130.58 MiB/sec
. Но тесты с 1/10 ядром показывают результат в соответствии с вашей формулой, поэтому с ограничением на использование процессора 10% у меня есть только пропускная способность памяти. 1425.87 MiB/sec
.
Если у вас более одного ядра, могут возникнуть проблемы с избыточным выделением ресурсов, когда облачный провайдер продает больше памяти, чем имеет на своих хостах, и это может вызвать проблемы с пропускной способностью памяти.