Виртуальная машина Linux работает медленно в зависимости от сети

6

На работе я использую виртуальную машину под управлением Linux Mint 13 под Oracle VM VirtualBox 4.2.16 на компьютере с Windows7. Ноутбук подключен к сетевому кабелю и беспроводное соединение отключено. Настройка сети для виртуальной машины заключается в использовании мостового адаптера к гигабитному сетевому соединению с собственным MAC-адресом. Это позволяет мне запускать Samba в системе Linux, чтобы я мог обмениваться файлами между двумя операционными системами. Все отлично работает

Проблема возникает, когда я беру ноутбук домой. Дома я использую беспроводное соединение. На стороне Windows нет проблем с подключением к Интернету. ВМ, с другой стороны, работает очень медленно. Открытие окна xterm и выполнение команды 'ls' может занять 15 секунд. Я попытался вызвать виртуальную машину с различными настройками адаптера в VirtualBox и даже с отключенными всеми сетевыми адаптерами, но каждый раз вижу одно и то же поведение.

Когда я достаточно терпелив (и адаптер подключен), я вижу, что виртуальная машина получает IP-адрес, но не может ничего пинговать во внешнем мире. Что здесь может происходить?

Чтобы еще больше сбить с толку, у меня есть вторая виртуальная машина с той же версией Linux Mint. Та же настройка оборудования виртуальной машины, но на ней не работает ни Samba, ни моя работа. :) Во всяком случае, он подключается к Интернету и работает просто отлично.

Что может отличаться между этими двумя, что может привести к тому, что одна виртуальная машина Linux будет настолько медленной, что ее невозможно будет использовать? Я пытался остановить Samba, но, похоже, это ничего не меняет. Что еще я мог попробовать?

Обновить

Результаты экспериментов сегодня вечером (Примечание. Под «операциями Xterm» я подразумеваю простые вещи, такие как ввод «ls» в окне Xterm и навигация по структуре каталогов):

  1. Пробовал работать без подключения к сети на ноутбуке (Windows или VM). Операции Xterm были все еще медленными.
  2. Включено беспроводное сетевое соединение с ноутбуком. Включил сетевое подключение к ВМ, но не подключил его. Операции Xterm были медленными.
  3. Включено NAT-соединение с ВМ. Виртуальная машина получила странный IP-адрес (10.0.3.15), и операции Xterm были все еще медленными.
  4. Включено мостовое соединение. Получен правильный IP-адрес (172.16.42.7, Windows была 172.16.42.4 и оба имели 255.255.255.0 для маски), но операции Xterm были медленными. Был в состоянии пропинговать 172.16.42.1 от VM и пропинговать VM от Windows.

Я должен упомянуть, что я подключаюсь к Гостевой сети на моей Apple Time Capsule.

На этом этапе я дважды проверил аппаратную конфигурацию между двумя моими виртуальными машинами - рабочей и нерабочей. Я заметил, что 3D-ускорение было включено для неработающего. Когда я отключил 3D-ускорение, диспетчер окон Cinnamon отображал множество графических сбоев, но операции Xterm были нормальной скоростью. Я отключил 3D-ускорение и перезагрузил компьютерную версию Cinnamon.

Графические глюки исчезли, и операции Xterm были нормальной скоростью. К сожалению, я не мог подключиться извне. Я имею в виду, что могу пинговать 172.16.42.1, но не www.google.com. Я бы хорошо переключился на MATE, но сейчас это сложно без внешнего подключения.

Почему оконный менеджер и / или 3D-ускорение влияют на операции в окне Xterm, когда я работаю в другой сети? Или это может быть связано с другим фактором, как источник питания? Что-то волшебное в моем кухонном столе?

Обновление 2

Я переключил Linux Mint 13 с Cinnamon на MATE, и это решило проблему с медлительностью!

К сожалению, я еще не вышел из леса. Вероятно, это отдельная проблема, но я не могу подключиться к внешнему миру. Виртуальная машина Linux Mint с MATE запускается и получает IP-адрес. Я могу пинговать систему из Windows. Я даже могу смонтировать общий доступ к Linux Mint Samba из Windows и просматривать каталоги.

С точки зрения виртуальной машины Linux Mint я не могу пропинговать хост Windows, но могу подключиться к Raspberry Pi в моей сети. Таким образом, подключение внутри сети работает нормально. Я просто не могу пропинговать Google с виртуальной машины Linux Mint. Я даже пытался подключиться через проводную сеть, но не повезло. Возможно, мне следует написать новый вопрос, но я хотел бы хотя бы опубликовать здесь обновление моего последнего статуса.

GrandAdmiral
источник
Убедитесь, что эмулированное оборудование в обеих виртуальных машинах идентично. Попробуйте в Windows отключить параметр «Драйвер сетевого подключения VirtualBox» в диалоговом окне «Свойства беспроводного сетевого подключения» для адаптера беспроводной карты.
Harrymc
«когда я терпелив ... виртуальная машина получает IP-адрес»: какой адрес? что такое маска сети на вашем хосте (windows)? Что за сеть (мостовая сеть, nat?) Может ли Windows пропинговать окно linux?
Риккардо Цорн
@harrymc - эмулированное оборудование в обеих виртуальных машинах идентично. Если я сниму флажок «Драйвер сетевого моста», это нарушит мою общую папку Samba, поскольку виртуальная машина будет использовать тот же IP-адрес, что и Windows. Я действительно не хочу этого делать.
Гранд-адмирал
@Riccardo Zorn - в основном он получает другой адрес в сети. Я проверю цифры и попробую проверить связь с Linux на Windows.
Гранд-адмирал
Попробуйте отключить брандмауэр Windows (или, возможно, брандмауэр виртуальной машины (например, iptables)), чтобы проверить, не мешает ли это подключению к виртуальной машине - похоже, ему удается получить адрес через DHCP, а затем заблокировать. Пользовательский интерфейс на виртуальной машине, вероятно, будет медленным, если он думает, что у него есть интерфейс, поскольку он пытается DNS-поиска для служб рабочего стола X истекает.
Pierz

Ответы:

3

Очень легко может быть, что в /etc/resolv.conf устанавливается неправильная вещь. Либо содержимое указывает на неправильный DNS-сервер (не существующий, сломанный или за брандмауэром (работающий)), либо ваша сеть не предоставляет вам доступ к сети, в которой находится указанный сервер имен (например, Интернет или ваш локальный маршрутизатор / шлюз.

Когда виртуальная машина работает медленно, от имени пользователя root отредактируйте файл /etc/resolv.conf и закомментируйте все в нем.

Посмотрите, станет ли операция снова нормальной. Если они это сделают, то доступ к DNS замедлит вас.

Затем пинг 8.8.8.8. Если это работает, отредактируйте /etc/resolv.conf и поместите в первую строку:

nameserver 8.8.8.8

Уэйн Уокер
источник
Я закомментировал все в /etc/resolv.conf, и это сработало! Я смог подключиться к внешнему миру. Я оставлю все закомментированным и попробую на работе. Интересно, что на другой виртуальной машине не было файла /etc/resolv.conf. Я не знаю достаточно о Linux, чтобы понять, почему они были разными, но они были.
Гранд-адмирал
ВМ подключается к внешнему миру на работе тоже. Я не уверен, что случилось, но, по крайней мере, сейчас все работает.
Гранд-адмирал
0

Похоже, что что-то скрыто внутри виртуальной машины, но я не думаю, что мы здесь можем выяснить, что там для вас не так. Только вы можете сделать это, потому что только вы можете экспериментировать.

В случае, если проблема связана с определением виртуальной машины, вы можете попытаться удалить виртуальную машину, сохраняя файл .vdi, создать новую виртуальную машину (обращая внимание на 32/64-битный вопрос хост / гость) и прикрепить .vdi диск.

Если это не помогает, то проблема заключается в виртуальной машине внутри Linux Mint и может быть чем угодно.

Если никто не придумает более удачной идеи, я бы тогда предложил запустить эту ВМ и начать заново, возможно, взяв ВМ, которая работает как отправная точка.

harrymc
источник
Проблема с утилизацией состоит в том, что я установил много наборов инструментов и самоскомпилированных библиотек. Я не хочу реконструировать всю эту работу только потому, что виртуальная машина не работает дома. Тем не менее, я хотел бы, чтобы он работал дома. Не могли бы вы объяснить, что для меня сделало бы присоединение файла .vdi к новой виртуальной машине (то есть, сохранило ли оно файловую систему)? Могу ли я скопировать этот файл и прикрепить его к новой виртуальной машине? Таким образом, я мог бы попробовать то, что вы предлагаете, не касаясь другой виртуальной машины.
Гранд-адмирал
Да, это тоже сработает.
Harrymc