Назад | Перейти на главную страницу

KVM и JBoss сервер приложений Java

У нас есть большое развертывание Xen, работающее как на RHEL, так и на CentOS, и недавно мы начали рассматривать KVM, поскольку именно здесь, похоже, будущее виртуальных машин находится в Linux.

Мы можем загрузить сервер и запустить все без проблем. Однако, когда мы загружаем новый с JBoss (4.2 Community edition, Sun JDK 6) и загружаем большой EAR, сервер становится немного сумасшедшим. % Sy подскочит до 80-99% и просто зависнет в течение длительного времени, мы увидим аналогичный скачок% us на хост-машине. Мы думали, что сначала это может быть ввод-вывод, поскольку он, кажется, происходит при запуске JBoss, но затем «остынет» после того, как все загрузится. Мы провели несколько тестов, извлекая несколько больших файлов tar.gz и используя jar -xvf на ухе, но не смогли воссоздать.

Затем мы начинаем думать, что это могут быть какие-то проблемы с доступом к памяти. Мы загрузили c-программу, которая генерировала большую активность памяти, и, конечно же, снова увидели всплески. Не так высоко, но мы видели, как он прыгнул. Затем мы написали небольшую Java-программу, чтобы сделать то же самое, и, конечно же, мы увидели, как она снова прыгает.

Есть мысли о том, что может быть причиной этого? Так работает KVM?

В качестве примечания мы НЕ видим такого поведения ни при каких других настройках. Xen, VMWare и / или родное железо. Система действительно кажется немного медленнее, чем наши Xen / VMware.

Вопрос и предложение:

  1. Какую файловую систему вы используете? В системах Fedora 12 и 13 я видел отличную производительность при использовании ext4, но ужасную производительность при использовании btrfs.

  2. Расширение комментария @Ophidian - попробуйте его с Fedora 13, чтобы увидеть, как он работает с использованием последних библиотек KVM и libvirt.

Интересно, вы каким-то образом используете свопинг на хост-машине.

Вы могли / не могли бы вы попробовать это в Fedora 12, чтобы увидеть, демонстрируют ли более свежие версии всего (kvm, libvirt, kernel, ksm) такое же поведение? KSM был добавлен в Fedora 12 и якобы обеспечивает более эффективное / лучшее управление памятью.

В дополнение к предложению 3dinfluence обратиться в службу поддержки Red Hat и в список рассылки KVM, я бы также предложил fedora-virt list, поскольку большое количество разработчиков libvirt, kvm и остальной части экосистемы виртуализации Fedora являются постоянными читателями fedora-virt. Обычно они очень отзывчивы и полезны.

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

Также поможет знание конфигурации виртуальной машины - сколько оперативной памяти, процессоров, дисков, типов сети и т. Д.

Вы используете ksmd (деупер совместно используемой памяти)? Это может вызвать некоторую нагрузку на ЦП в системе гипервизора и, вероятно, может быть связано с остановками, связанными с памятью.

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

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

Наконец-то я нашел Дага Виера dstat хорошее дополнение к моему набору инструментов для отслеживания проблем.

(Поскольку мы собираемся рассмотреть пилотирование JBoss-under-KVM, это соответствует моим интересам ...)