Виртуализация серверов: как избежать, найти и устранить узкие места? - PullRequest
4 голосов
/ 23 сентября 2008

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

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

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

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

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

Редактировать: Подробнее о моей конкретной проблеме:

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

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

Ответы [ 3 ]

2 голосов
/ 23 сентября 2008

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

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

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

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

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

2 голосов
/ 23 сентября 2008

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

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

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

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

0 голосов
/ 28 сентября 2008

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

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