2008-09-23 8 views
4

Виртуализация серверов в наши дни очень важна, поэтому мне поручено установить часть нашего программного обеспечения на виртуализованном сервере и посмотреть, что произойдет. Короче говоря: передача rsync быстро приводит к тому, что виртуализированный сервер встанет на колени. Хост виртуализации - это мускулистая машина без другой нагрузки; Я не думаю, что это должно произойти. Top показывает средние значения средней нагрузки, а cpu iowait - около 100%. Там где-то есть огромное узкое место.Виртуализация серверов: как избежать, найти и устранить узкие места?

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

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

  • Какие инструменты (даже стандартные инструменты unix) могут использоваться для определения узких мест?
  • Какие показатели следует соблюдать для обеспечения бесперебойной работы?
  • Что можно эффективно виртуализировать?
  • Какие установки обречены на провал?

Приносим извинения за широту вопроса. У меня просто нет знаний, чтобы задавать полезные конкретные вопросы об этом.

Edit: Еще на моей конкретной проблеме:

  • XAN паравиртуализация, 3 х гость CentOS
  • Всех гостей на локальных дисках SCSI, имеется полностью аппаратный контроллер RAID
  • rsyncd работает на 1 гость os, передача, инициированная с удаленного не виртуализированного сервера через 100 Мбит/с LAN

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

+0

Является ли rsync чтением или записью на виртуализированную машину? Или вы видите одно и то же поведение в любом случае? –

ответ

2

Я собирался сделать это в комментариях, но я думаю, что это более полезно в открытоугольной:

Не могли бы вы добавить больше деталей о вашей установки:

  • Какой сервер VM?
    (VMware Server, VMware ESX, MS VirtualServer, MS Hyper-V, что-то еще?)
  • Какая ОС для гостей (гостей)?
    (Windows, Linux, 32-bit, 64-bit?)
  • Где хранятся гости?
    (Локальный диск или NAS или SAN?)
  • Были ли вы rsyncing между гостями на одном сервере VM или между гостевым и физическим сервером?
  • Если по сети, насколько быстро сеть?

Настройка производительности в любой среде составляет 90% сбора данных и 10% -ного анализа. В виртуализованных средах больше переменных, чем в физических средах, но что более важно, они имеют другую кривую ответа, чем физические среды. Некоторые приложения могут работать лучше в виртуализованной среде, чем в физической среде; другие не будут. Вы должны понимать требования приложения, а также ограничения реализации.

Я не считаю, что есть какие-либо программные приложения, которые не могут быть успешно развернуты на виртуальных серверах, если вы обратите внимание на детали. (Приложения, для которых требуется специальное оборудование, которое не может быть успешно виртуализировано, представляют собой другую проблему.)

+0

На данный момент я все еще очень сильно зациклился на части «сбора данных», так как у меня нет опыта работы с инструментами, и я точно не знаю, где искать. Но ваш пост заставляет меня думать, возможно, мне следует сначала прочитать общую настройку производительности и забыть об аспекте виртуализации. –

2

Я использую rsync, чтобы синхронизировать некоторые части нашей (очень новой) виртуальной среды без каких-либо проблем. Я не думаю, что это проблема виртуализации, так как это проблема ввода-вывода, которую вы, похоже, уже идентифицировали.

Я обнаружил, что виртуализация очень и очень обременена жесткими дисками, и это только ухудшается, тем больше у вас гостей на хост-боксе. Для машин с очень интенсивным вводом-выводом рассмотрите сегментирование их доступа к диску от других хостов. Используете ли вы какую-либо технологию SAN? Мы обнаружили, что это очень полезно на моем рабочем месте (мы используем два 8-ядерных сервера Sun Intel и 1 TB 12-дисковый iSCSI-массив).

Является ли ваше оборудование полностью поддерживаемым поставщиком программного обеспечения для виртуализации? Если вы пытаетесь запустить на неподдерживаемом оборудовании, есть хорошая вероятность, что ваш контроллер диска не будет использовать лучшие драйверы, что объясняет ваш медленный доступ к диску.

Вы можете использовать iostat в Linux/Unix, чтобы получить обратную связь по ввода-выводам, а также есть iotop, хотя он еще не упакован во многих дистрибутивах.

+0

Я посмотрю в SAN, спасибо. Хост-машина имеет диски scsi с полностью аппаратным контроллером рейдов. Боюсь, я не знаю spesifics, как я уже сказал, я не системный администратор. –

0

От руки Я бы сказал, что это проблема ввода-вывода. В виртуальных средах наибольшие факторы, влияющие на производительность, - это состояние диска главной машины. Что мы делаем для оптимизации производительности:

  1. Исправлено выделение диска. Таким образом, вы получите смежный блок пространства для виртуальной машины, в котором можно жить.
  2. Запланируйте дефрагментацию операционной системы VM Slice и хост-сервера. Фрагментация - ваш враг.
  3. Убедитесь, что сеансы сервера завершены грациозно. Когда вы прыгаете с виртуальной ОС, НЕ просто выключайте срез VM, так как это вызывает огромную фрагментацию диска. Виртуальной ОС необходимо выполнить процесс выключения/перезапуска.