После настройки нашего сервера разработки казалось бы жизнь разработчиков должна была стать значительно веселей;). Но не тут то было, работа сервера была очень медленной. Сайты открывались медленно, разрабочики жаловались.
После проведенного анализа быстродействия я выяснил, что в виртуальной машине очень медленно идет запись на диск (запись на диск в виртуальной машине в 10 раз ниже чем на хостовой).
В качестве системы виртуализации мы используем KVM и панель управления VDSManager. Эту панель выбрали потому что она интегрирована с BillManager и другими продуктами ISPSystems.
Таких тормозов при ручной настройке KVM не было, поэтому и был сделан вывод что панель VDSManager как-то хитро подключает диски к виртуальным машинам.
У нас диски всех виртуальных машин были сделаны как файл, поэтому перевод в LVM это все таки большая задача.
Я разобрался в механизме подключения дисков: по умолчанию не было использовано кэширование записи.
Для включения механизма кэширования необходимо:
- скопировать файл /usr/local/ispmanager/sbin/kvm_run в папку с настройками виртуальной машины /kvm/machines/[имя машины]
- переименовать файл kvm_run в run
- из файла pre-run.conf полностью скопировать строчку "DRIVELIST=..." и вставить ее в файл run, например после строки "MONITOR=...";
- в конце переменной "DRIVELIST=" добавляем параметр
cache=writeback
- Перезапускаем виртуальную машину через панель.
mv kvm_run run
После этих действий скорость записи на диск существенно возрастет.
P.S. Жаль, что разработчики не предусмотрели изменение этого параметра, но не все потеряно в мае 2012 года разработчики писали, что работа над этим ведется. Возможно скоро перейдут на использование libvirt, тогда, думаю, что проблем вообще не будет.