LINUX.ORG.RU
ФорумAdmin

оптимизация KVM


0

2

Привет всем!
Имеем следующий сервак:
1. Intel(R) Xeon(R) CPU X3330 @ 2.66GHz
2. MemTotal: 8192444 kB
3. 2x HDD SATA2 500 Gb.
Система: Ubuntu 10.04.

Прямая задача сервера - хранить базу (MySQL) и через вэб-интерфейс (apache) выдавать пользователю результаты запросов.
Запросы есть комплексные, которые обрабатываются на этом серваке около 40 секунд (в данный момент не идет речь об оптимизации запроса, просто 40 секунд и всё).

Имея в распоряжении такую конфигурацию сервера и более 70% его простоя я решил поднять на нем ещё несколько виртуальных машин.

Поставил KVM, настроил бридж. По соображением безопасности решил перенести основной вэб-сервер с базой с хост-системы на виртуальную машину, а основной хост-сервер оставить только с sshd.

В общем те же самые настройки mysql и apache2, те же самые запросы на виртуальной машине и на хост машине выполняются с очень большой разницей во времени. Памяти я выделял на хост машину 4Гб.
Запрос, который на хосте выполняется за 40 секунд на виртуалке выполняется за 101 сек.

Добавил в конфиг виртуалки:
<driver name='qemu' type='raw' cache='none'/>
Тобишь отключил кэш (как рекомендуют в большинстве мануалов по тюнингу файловой системы в VM), но вместо этого запрос стал выполняться на 5 секунд дольше.
Пробовал добавить к строке инициализации ядра elevator=noop, также прописанный в мануалах по тюнингу, но никаках изменений.

Читал ещё про перенос вирт. диска на LVM, но пока ничего не переносил. Даст ли это существенной прирост в производительности?
Результаты dbench различаются по производительности в 2 раза.

Есть ли какие-то варианты по увеличению производительности кроме установки базы с сервером на хост, а все остальные сервисы (которые мне нужны) на виртуалки?
Заранее спасибо!


Даст ли это существенной прирост в производительности?

Сначала найди в чём затык. Если оно не в диски упирается то этим ты не поможешь.

true_admin ★★★★★
()
Ответ на: комментарий от BusTeR

запрос 100% упирается не в память, т.к. выделние мамяти меньше 1Гб, и загрузка процессора при запросе - максимум 60%.

BusTeR
() автор топика
Ответ на: комментарий от true_admin

с виртуалки и с физической тачки. во время запроса, разумеется.

true_admin ★★★★★
()

BusTeR> Даст ли это существенной прирост в производительности?

Да, разница в 2 раза между вирт. диском в файле и на блочным устройством.

sdio ★★★★★
()

А какой процессор указан в kvm? Вообще отличия по скорости в виртуалке и в нормальной машине не должны быть больше 20%, если все хорошо настроено.

soomrack ★★★★
()
Ответ на: комментарий от nowherer

Перенес система на lvm (создал /dev/loop0 из файла....на нем собрал lvm и, с помощью dd перенес образ виртуальной машину на устройство /dev/vg/lvm (если неправильно сделал - пожалуйста поправьте))ю Прироста в производительности именно моего запроса это никоем образом не коснулось.

Во время выполнения запроса скрин на ХОСТ-сервере:
http://img59.imageshack.us/img59/5845/test1host.jpg

Во время выполнения запроса скрин на VM:
http://img820.imageshack.us/img820/1025/test1vm.jpg

Разница во времени выполнения запроса такая же: на VM - 100-110 сек, на хосте 40-45 сек.

Что ещё можно попробовать? Или не париться и поставить вэб-сервер и базу на хост-сервер, а свои проекты - на отдельно созданные на сервере VM.

BusTeR
() автор топика
Ответ на: комментарий от BusTeR

Попробуй включить writeback и virtio

anonymous
()
Ответ на: комментарий от BusTeR

А может надо MySQL поднастроить под используемые запросы. Одинаковые ли параметры на хостовой машине и в виртуальной?

petav ★★★★★
()
Ответ на: комментарий от petav

И да, потестировать бы скорости записи на диск в виртуальной машине с разными параметрами. Опять же если это диск!

petav ★★★★★
()
Ответ на: комментарий от BusTeR

Ссори, почитал повнимательнее. А можно конфиг вирт машины там где процессор описан хотя бы.

petav ★★★★★
()

KVM@Intel(R) Xeon(R)CPU E5645 @ 2.40GHz
special for you:

HOST

./systester-cli.intel64 -gausslg 1M -threads 1 -bench

System Stability Tester. CLI Version 1.1.1.
Distributed under the terms of the GPL v2.
Type -help for command line options.
http://systester.sourceforge.net

Intel(R) Xeon(R)CPU E5645 @ 2.40GHz
Running Linux x86_64 at 2400 MHz
System memory: 24153 MB
Hardware Threads: 24
GMP version: GMP 5.0.1
Compiled for 64 bit environments

 Operating mode: Bench
 Calculating 1048576 digits of pi
 -----------------------------------------
 Turn:   1  Errors:   0       Threads:   1
 Running For:  0h  0m  0.000s  ChkErr:   0
 Failed After:  No fail yet
 -----------------------------------------
 Loop Digits State    Time
 ---------------------------------
    0      1  N/A   0h  0m  0.182s
    1      2  N/A   0h  0m  0.313s
    2      4  N/A   0h  0m  0.518s
    3      8  N/A   0h  0m  0.695s
    4     16  N/A   0h  0m  0.849s
    5     32  N/A   0h  0m  1.003s
    6     64  N/A   0h  0m  1.190s
    7    128  N/A   0h  0m  1.356s
    8    256  N/A   0h  0m  1.516s
    9    512  N/A   0h  0m  1.686s
   10     1K  N/A   0h  0m  1.844s
   11     2K  N/A   0h  0m  2.011s
   12     4K  N/A   0h  0m  2.169s
   13     8K  N/A   0h  0m  2.354s
   14    16K  N/A   0h  0m  2.513s
   15    32K  N/A   0h  0m  2.673s
   16    64K  N/A   0h  0m  2.837s
   17   128K  N/A   0h  0m  3.005s
   18   256K  N/A   0h  0m  3.163s
   19   512K  N/A   0h  0m  3.310s
   20     1M  N/A   0h  0m  3.419s
 Checksum validation...Gauss PASSED!!!

GUEST

./systester-cli.intel64 -gausslg 1M -threads 1 -bench

System Stability Tester. CLI Version 1.1.1.
Distributed under the terms of the GPL v2.
Type -help for command line options.
http://systester.sourceforge.net

QEMU Virtual CPUversion 0.12.3
Running Linux x86_64 at 2400 MHz
System memory: 493 MB
Hardware Threads: 1
GMP version: GMP 5.0.1
Compiled for 64 bit environments

 Operating mode: Bench
 Calculating 1048576 digits of pi
 -----------------------------------------
 Turn:   1  Errors:   0       Threads:   1
 Running For:  0h  0m  0.000s  ChkErr:   0
 Failed After:  No fail yet
 -----------------------------------------
 Loop Digits State    Time
 ---------------------------------
    0      1  N/A   0h  0m  0.282s
    1      2  N/A   0h  0m  0.425s
    2      4  N/A   0h  0m  0.606s
    3      8  N/A   0h  0m  0.785s
    4     16  N/A   0h  0m  0.971s
    5     32  N/A   0h  0m  1.169s
    6     64  N/A   0h  0m  1.339s
    7    128  N/A   0h  0m  1.514s
    8    256  N/A   0h  0m  1.681s
    9    512  N/A   0h  0m  1.848s
   10     1K  N/A   0h  0m  2.028s
   11     2K  N/A   0h  0m  2.308s
   12     4K  N/A   0h  0m  2.586s
   13     8K  N/A   0h  0m  2.775s
   14    16K  N/A   0h  0m  2.943s
   15    32K  N/A   0h  0m  3.110s
   16    64K  N/A   0h  0m  3.281s
   17   128K  N/A   0h  0m  3.446s
   18   256K  N/A   0h  0m  3.609s
   19   512K  N/A   0h  0m  3.767s
   20     1M  N/A   0h  0m  3.888s
 Checksum validation...Gauss PASSED!!!

uspen ★★★★★
()
Ответ на: комментарий от uspen

извиняюсь, не корректное сравнение. у меня там проц на хосте загружен. результаты разняться сильно.

uspen ★★★★★
()
Ответ на: комментарий от BusTeR

>Перенес система на lvm (создал /dev/loop0 из файла....на нем собрал lvm и, с помощью dd перенес образ виртуальной машину на устройство /dev/vg/lvm (если неправильно сделал - пожалуйста поправьте))ю Прироста в производительности именно моего запроса это никоем образом не коснулось.

Смысл в LVM не в волшебных буквах LVM, а в том что ты отдаешь vm напрямую блочное устройство, а не файл с фс, а ты только лишнюю прослойку навернул.

swelf
()
Ответ на: комментарий от BusTeR

BusTeR> Перенес система на lvm (создал /dev/loop0 из файла....на нем собрал lvm

OMG, lvm в файле и он ждет прирост производительности. идиот.

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.