У меня есть хост VMWare ESXi 5.1.0 (сборка 1065491), на котором запущен Солярис (OpenIndiana) ВМ в качестве гостя. Я создал частный vSwitch для трафика NFS между ESXi и Solaris. На виртуальной машине Solaris установлены инструменты VMware и адаптер VMXnet3 (vmxnet3s0
) на частном vSwitch.
Чтение из файла непосредственно на виртуальной машине Solaris с помощью dd
Я получаю скорость до 4,5 ГБ / с (44,8 гигабит / с) при чтении файла (если он был кэширован моим ARC / L2ARC)
Читая тот же файл через NFS от VMware, я могу получить максимум 0,163 ГБ / сек (1,131 гигабит / сек)
Почему такая разница? Я ожидаю некоторых накладных расходов из-за TCP и NFS, а также виртуальных сетей, но это различие не то, что я бы назвал накладные расходы, похоже, что-то не так.
ЦП на виртуальной машине Solaris никогда не загружается более чем на 20%. Средняя загрузка низкая. Достаточно свободной оперативной памяти на хосте (это не подкачка), а загрузка ЦП на хосте значительно ниже 50% (обычно около 33%). На гостевой виртуальной машине dladm show-linkprop vmxnet3s0
показывает, что скорость составляет 10000 (10 Гбит / сек), а MTU - 9000 (включены Jumbo Frames)
В качестве теста попробовал использовать "стандартный" E1000 vmnic (e1000g0
), и мне удалось включить jumbo-кадры (9000 MTU), однако, читая тот же файл через NFS от VMware, я могу получить максимум 0,124 ГБ / с (0,992 гигабит / с), что имеет смысл как скорость соединения на E1000. всего 1000 мегабит.
Почему я вижу только скорость передачи 1 гигабит / с между VMware ESXi 5.1 и моей виртуальной машиной OpenIndiana Solaris?
ОБНОВИТЬ: После применения настройки производительности, рекомендованной VFrontDe в его ответе, я теперь получаю впечатляющие 8-9 Гбит / с между Solaris и виртуальной машиной Linux с vmxnet3
адаптер. Я получаю ~ 6 Гбит / с при чтении кешированного файла через NFS под Linux:
root@iperf:/mnt/public/ISO# dd if=Test.cdr of=/dev/null bs=1024k
5884+1 records in
5884+1 records out
6170824704 bytes (6.2 GB) copied, 8.44985 s, 730 MB/s
Однако, читая тот же файл на хосте VMware ESXi, я получаю ужасные 1,91 Гбит / с:
/vmfs/volumes/3d77318f-82c7901a/ISO # time dd if=Windows\ 7\ Home\ Premium.cdr of=/dev/null bs=1024k
5884+1 records in
5884+1 records out
real 0m 27.85s
user 0m 17.32s
sys 0m 0.00s
6,2 ГБ за 27,85 секунды - это 1,91 ГБ / с.
Что вызывает проблемы с Vmware ESXi vmknic
так плохо работать, когда vmxnet3
к vmxnet3
намного лучше?
Похоже, что с адаптером vmxnet3 для Solaris есть некоторые проблемы и ошибки. Пожалуйста, прочтите этот очень подробный пост: http://blog.cyberexplorer.me/2013/03/improving-vm-to-vm-network-throughput.html Автору удалось значительно улучшить пропускную способность после некоторых настроек, но повторять все шаги здесь слишком сложно.