Я просмотрел много статей, но не ответил на свой вопрос.
На моем сервере используется гипервизор VMware vSphere. На моем сервере 20 виртуальных машин.
Операционная система ВМ: centos7
Я уже меняю свой vSwitch и Сеть ВМ пропускная способность до 1000000000 КБ / с
поэтому другие виртуальные машины не повлияют на мой dtr (скорость передачи данных).
Теперь мой dtr составляет 170 ~ 200 МБ / с
Как мне увеличить мой dtr до 500 МБ / с, чтобы я мог быстрее передать файл размером 20 ГБ с A vm на B vm.
VM A : nc -l 20000 > /dev/null
VM B : time dd if=/dev/zero bs=100M count=200 | nc <VM A> 20000
200+0 records in
200+0 records out
20971520000 bytes (21 GB) copied, 122.466 s, 171 MB/s
real 2m2.479s
user 0m2.148s
sys 3m10.841s
Заранее спасибо.
Поскольку это кажется решением, я добавляю его в качестве ответа:
При создании виртуальной машины в качестве сетевого адаптера по умолчанию используется эмулированный Intel E1000E. Этот адаптер работает в большинстве операционных систем без дополнительных драйверов, но работает нестабильно и может только используйте 1 Гбит.
Чтобы использовать полный 10-гигабитный трафик между виртуальными машинами на одном хосте (или через 10-гигабитные подключения к вашей сети), вам необходимо добавить адаптер vmxnet3. Вы не можете изменить тип адаптера, вы должны создать новый. Даже если вы используете powercli для изменения типа адаптера, он создаст новый адаптер, поэтому настройки сети и MAC-адрес будут сброшены.
Чтобы адаптер vmxnet3 работал, в некоторых системах (особенно в Windows) вам необходимо установить VMware Tools, поскольку драйверы для этого адаптера включены туда (спасибо Джеральду и Джону за дополнительную информацию).
Использовать интерфейс virtio вместо. Это паравиртуализированное устройство, доступное хосту ядром предположения. В предположении больше нет сетевого адаптера, что значительно снижает нагрузку на драйверы. Его поддержка включена во все ядра Linux ≥ 2.6.25.
Так называемая «полная виртуализация» - хорошая функция, поскольку она позволяет запускать любую виртуализированную операционную систему. Однако это медленно, потому что гипервизор должен имитировать реальные физические устройства, такие как сетевые карты RTL8139. Эта эмуляция сложна и неэффективна.
Virtio - это стандарт виртуализации для драйверов сетевых и дисковых устройств, при котором только драйвер гостевого устройства «знает», что он работает в виртуальной среде, и взаимодействует с гипервизором. Это позволяет гостям получить высокопроизводительные сетевые и дисковые операции и дает большую часть преимуществ паравиртуализации в производительности.
См. Также virtio тег и
Я не знаю точного названия virtio в VMware, но похоже, что это VMXNET 3
VMXNET 3: адаптер VMXNET 3 - это следующее поколение паравиртуализированной сетевой карты, разработанное для повышения производительности и не связанное с VMXNET или VMXNET 2. Он предлагает все функции, доступные в VMXNET 2, и добавляет несколько новых функций, таких как поддержка нескольких очередей (также известная как масштабирование на стороне приема в Windows), разгрузку IPv6 и доставку прерываний MSI / MSI-X. Для получения информации о производительности VMXNET 3 см. Оценка производительности виртуального сетевого устройства VMXNET3.
Выбор сетевого адаптера для вашей виртуальной машины (1001805)
Вы можете прочитать VMware Оценка производительности виртуального сетевого устройства VMXNET3
Для получения дополнительной информации прочтите рекомендации Virtualbox по повышению производительности, многие из которых применимы и к VMware.
6.11. Повышение производительности сети
VirtualBox предоставляет множество виртуальных сетевых адаптеров, которые можно «подключить» к сети хоста разными способами. В зависимости от того, какие типы адаптеров и вложений используются, производительность сети будет разной. С точки зрения производительности сетевой адаптер virtio предпочтительнее эмулируемых адаптеров Intel PRO / 1000, которые предпочтительнее адаптеров семейства PCNet. Адаптеры virtio и Intel PRO / 1000 обладают преимуществом сегментации и разгрузки контрольной суммы. Разгрузка сегментации важна для обеспечения высокой производительности, поскольку она позволяет использовать меньше переключений контекста, что значительно увеличивает размеры пакетов, пересекающих границу виртуальной машины / хоста.
Три типа присоединения: внутреннее, мостовое и только для хоста, имеют почти одинаковую производительность, внутренний тип немного быстрее и использует меньше циклов ЦП, поскольку пакеты никогда не достигают сетевого стека хоста. Вложение NAT является самым медленным (и самым безопасным) из всех типов вложений, поскольку обеспечивает преобразование сетевых адресов. Вложение универсального драйвера является особым и не может рассматриваться как альтернатива другим типам вложения.
Количество процессоров, назначенных виртуальной машине, не улучшает производительность сети, а в некоторых случаях может повредить ей из-за повышенного параллелизма в гостевой системе.
Вот краткое изложение того, что нужно проверить, чтобы улучшить производительность сети:
- По возможности используйте сетевой адаптер virtio, в противном случае используйте один из адаптеров Intel PRO / 1000;
- Используйте подключение по мосту вместо NAT;
- Убедитесь, что в гостевой ОС включена разгрузка сегментации. Обычно он включен по умолчанию. Вы можете проверить и изменить настройки разгрузки с помощью команды ethtool в гостевых системах Linux.
Выполните полный и подробный анализ сетевого трафика на сетевом адаптере виртуальной машины с помощью стороннего инструмента, такого как Wireshark. Для этого на сетевом адаптере виртуальной машины необходимо использовать политику неразборчивого режима. Использование этого режима возможно только в сетях: сеть NAT, мостовой адаптер, внутренняя сеть и адаптер только для хоста.
Чтобы настроить политику неразборчивого режима, выберите вариант из раскрывающегося списка в диалоговом окне «Параметры сети» для сетевого адаптера или используйте инструмент командной строки VBoxManage; подробности см. в Раздел 8.8, «VBoxManage modifyvm».
Правила беспорядочного режима:
deny
(настройка по умолчанию), который скрывает любой трафик, не предназначенный для сетевого адаптера этой виртуальной машины.allow-vms
который скрывает весь трафик хоста от сетевого адаптера этой виртуальной машины, но позволяет ему видеть трафик от / к другим виртуальным машинам.allow-all
что снимает все ограничения - сетевой адаптер этой виртуальной машины видит весь трафик.