Pull to refresh

Comments 6

В статье не смог найти. Тест крутился только на одном госте? То есть борьбы за контекст процессора не было? Мне кажется, что аппаратная реализация виртуализации дала бы бОльший прирост в случае нагрузки на нескольких гостях.

А с disk IO странно. Производительность дисковой подсистемы должна упираться в скорость чтения с железки и проц тут практически не при чём (когда используется DMA). Может, с передачей данных на гостя и предварительным чтением хостом что-то в вбоксе наколдовано :)
Да, тест крутился только на одном госте.
Запустить на двух сразу? Придумать бы, как это сделать синхронно. По крону, что ли… :)

На счет диска — что вижу, то и пою. Еще пробовал копировать файл в /dev/null и гонять hdparm -tT.
Скорость копирования файла была практически идентичной, а вот hdparm при отключенном VT стабильно выдавал «Timing buffered disk reads: 90 MB in 3.00 seconds = 30 MB/sec» (плюс-минус какие-то килобайты), а вот при включенном VT начиналась фигня:

Timing buffered disk reads: 316 MB in 3.00 seconds = 105.25 MB/sec
Timing buffered disk reads: 444 MB in 3.01 seconds = 147.49 MB/sec
Timing buffered disk reads: 570 MB in 3.04 seconds = 187.45 MB/sec
Timing buffered disk reads: 662 MB in 3.04 seconds = 218.09 MB/sec
Timing buffered disk reads: 670 MB in 3.02 seconds = 221.64 MB/sec
Timing buffered disk reads: 722 MB in 3.03 seconds = 237.98 MB/sec
Timing buffered disk reads: 654 MB in 3.00 seconds = 217.91 MB/sec
На одном из гостей можно запустить что-нибудь процессороёмкое (тот же тест на длительное время или просто «while true; do date >/dev/null; done»)
А в другом госте пускать реальный тест. Таким образом он будет вынужден бороться за процессор, будет куча переключений контекста как между гостями, так и внутри.
Запущено два гостя, на одном крутится mprime, на втором — 100 запусков procbench'a.
Каждому гостю выдано одно ядро (штатный режим работы).
VT отключено:
1. ctest1(multiplication 1x10^9 times in nested loop): 1446 ms
2. ctest2(Ackermann's function of (3, 12)): 5615 ms
3. ctfibo(Fibonacci number of 42): 5515 ms
4. ctheapsort(Heap sort on 40mb random data): 4791 ms
5. ctmatrix(Matrix multiplication): 4023 ms
6. ctrandom(Random number generation): 2130 ms

VT включено:
1. ctest1(multiplication 1x10^9 times in nested loop): 1435 ms
2. ctest2(Ackermann's function of (3, 12)): 5112 ms
3. ctfibo(Fibonacci number of 42): 5401 ms
4. ctheapsort(Heap sort on 40mb random data): 4651 ms
5. ctmatrix(Matrix multiplication): 3988 ms
6. ctrandom(Random number generation): 2128 ms

То есть прирост получаем
1. ctest1(multiplication 1x10^9 times in nested loop) 0,76%
2. ctest2(Ackermann's function of (3, 12)) 8,96%
3. ctfibo(Fibonacci number of 42) 2,07%
4. ctheapsort(Heap sort on 40mb random data) 2,92%
5. ctmatrix(Matrix multiplication) 0,87%
6. ctrandom(Random number generation) 0,09%

И средний прирост: 2,61%.
Дисковую производительность не тестировал — юзеры надоели воплями «чо ты там все перезагружаешь, дай на форуме спокойно посидеть». :)
ничего не понимаю, должно же было лучше стать… все мои мечты развеяны :(
Либо набор тестов неудачный, либо у virtualbox не самая удачная реализация VT.
C другой стороны, учитывая, что когда-то от включения наблюдался не прирост, а потеря производительности, нынешнее состояние вещей — изменение к лучшему. :)

Когда буду windows в виртуалбоксе запускать (бывает время от времени для экспериментов), надо будет и там тесты погонять, если не забуду.
Sign up to leave a comment.

Articles