четверг, 10 июня 2010 г.

Ускоряем виртуальную сеть Hyper-V в Windows Server 2008 R2

Сегодня обнаружил, что сервер на базе виртуальной машины Hyper-V очень медленно отдает данные. Первым делом возникло подозрение, что он просто-напросто сильно загружен, однако, эти подозрения не подтвердились - загрузка процессора составляла 2-3%, объем используемой оперативной памяти порядка 50%. Говоря простым языком, сервер "курил", но данные с него тянулись очень медленно. Естественно, такое положение вещей меня не устраивало, и я полез в сеть искать решение.

При поиске в Google информации по данной проблеме, я неизменно наталкивался на обсуждения сетевых адаптеров Intel и таинственное свойство TCP Large Send Offload (IPv4). Суть обсуждений в блогах и форумах сводилась к тому, что виртуальная сеть, построенная на базе адаптеров Intel с данным включенным свойством работала очень медленно. Несмотря на то, что у меня встроенная в материнскую плату сетевуха (какая-то модель Marvell), я решил попробовать выключить это свойство.

Люди в интернете советовали выключать свойство на виртуальной машине, но я для начала попробовал выключить его хостовом сервере. Итак, идем в диспетчер устройств, заходим в свойства сетевого адаптера, далее вкладка "Дополнительно" и для свойства "IPv4: Разгрузка большой отправки" выставляем значение "Отключено". Все эти нехитрые манипуляции я производил при продолжающимся процессе копирования данных. Не прошло и 10 секунд, как изменения были подхвачены, и данные стали копироваться на порядок быстрее.

Количество ссылок по данной теме в интернете наводит на мысль, что это очень частая проблема. Может, Майкрософт стоит включить статью по этому поводу в "Ресурсы и поддержка"? Тем не менее, проблема решена. Hyper-V и Google рулит!