Виртуализация серверов:как избежать, обнаружить и устранить узкие места?

StackOverflow https://stackoverflow.com/questions/121743

Вопрос

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

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

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

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

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

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

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

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

Это было полезно?

Решение

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

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

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

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

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

Другие советы

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

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

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

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

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

  1. Исправлено распределение дисков.Таким образом, вы получаете непрерывный блок дискового пространства для размещения виртуальной машины.
  2. Запланируйте дефрагментацию ОС VM Slice и диска хост-сервера.Фрагментация — ваш враг.
  3. Убедитесь, что вы корректно завершаете сеансы сервера.При отключении виртуальной ОС НЕ ВЫКЛЮЧАЙТЕ просто срез виртуальной машины, так как это приведет к огромной фрагментации диска.Виртуальной ОС необходимо выполнить процесс выключения/перезапуска.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top