Мы используем kvm для виртуализации, образы дисков хранятся в виде логических томов. Логические тома хранятся в группе массивов программного RAID1 (mdadm), состоящих из твердотельных накопителей Intel DCS3500 (каждый массив является физическим томом в группе томов).
Если я создаю логический том внутри этой группы томов и использую fio для определения IOPS, я получаю около 40K IOPS для блоков произвольной записи по 4 КБ. Отлично. iostat показывает, что оба SSD используются примерно на 100%. Если я создаю виртуальную машину, которая использует один и тот же логический том для хранения, и запускаю ту же команду fio, я сначала получаю 20K IOPS (отлично), но через 30 секунд или около того оно упадет до 7-8K. Странно то, что iostat теперь показывает, что один SSD используется на 100%, а другой - только на 45%.
Вот графики с течением времени (сделано с помощью iostat -x 2 на гипервизоре)
Как вы видите, сначала кажется, что узким местом является sdn, но затем sdm начинает делать что-то, что утаскивает массив, и теперь sdn занят только наполовину.
Однако по какой-то причине это происходит только в том случае, если тест выполняется внутри виртуальной машины. Если я запускаю его с гипервизора, все в порядке и производительность не падает как минимум 2 минуты. Выбор драйвера виртуального диска, ide или virtio не влияет на результат.
Кто-нибудь раньше сталкивался с такой проблемой? Какая основная причина? Как мне увеличить производительность?
РЕДАКТИРОВАТЬ: Дополнительная информация по запросу (по какой-то причине я не думал об этом в первую очередь)
OS: CentOS 6.4
Kernel: 2.6.32-358.el6.x86_64
mdadm --detail / dev / md104
/dev/md104:
Version : 1.2
Creation Time : Mon Feb 3 20:02:02 2014
Raid Level : raid1
Array Size : 468720320 (447.01 GiB 479.97 GB)
Used Dev Size : 468720320 (447.01 GiB 479.97 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Wed Feb 26 14:50:36 2014
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : xxx:104 (local to host xxx)
UUID : aaaaaaaa:bbbbbbbb:cccccccc:dddddddd
Events : 28
Number Major Minor RaidDevice State
0 8 192 0 active sync /dev/sdm
1 8 208 1 active sync /dev/sdn
Я отключил идентификатор пользователя и имя хоста.