Производительность Openfiler iSCSI
Надеюсь, что кто-то может указать мне правильное направление с некоторыми проблемами производительности iSCSI, которые у меня возникают. Я использую Openfiler 2.99 на старом ProLiant DL360 G5. Двойной процессор Xeon, 6 ГБ оперативной памяти ECC, сетевой адаптер Intel Gigabit Server, контроллер SAS с 3 дисками SAS 10K в RAID 5. Когда я запускаю простой тест записи из коробки непосредственно, производительность очень хорошая:
[root@localhost ~]# dd if=/dev/zero of=tmpfile bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 4.64468 s, 226 MB/s
Поэтому я создал LUN, подключил его к другому блоку, на котором у меня установлен ESXi 5.1 (Core i7 2600k, 16 ГБ ОЗУ, сетевой адаптер Intel Gigabit Server) и создал новое хранилище данных. Создав хранилище данных, я смог создать и запустить виртуальную машину под управлением CentOS с 2 ГБ оперативной памяти и 16 ГБ дискового пространства. Операционная система установлена нормально, и я могу использовать ее, но когда я запускаю один и тот же тест внутри виртуальной машины, я получаю совершенно разные результаты:
[root@localhost ~]# dd if=/dev/zero of=tmpfile bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 26.8786 s, 39.0 MB/s
[root@localhost ~]#
На обоих серверах установлены новые серверные сетевые платы Intel, и у меня на коммутаторе включены Jumbo Frames, блок openfiler, а также адаптер VMKernel на блок ESXi. Я могу подтвердить, что это настроено правильно, используя команду vmkping с хоста ESXi:
~ # vmkping 10.0.0.1 -s 9000
PING 10.0.0.1 (10.0.0.1): 9000 data bytes
9008 bytes from 10.0.0.1: icmp_seq=0 ttl=64 time=0.533 ms
9008 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.736 ms
9008 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.570 ms
Единственное, что я еще не пробовал, так это объединение двух интерфейсов. Я открыт для того, чтобы попробовать это в будущем, но сейчас я пытаюсь сделать вещи простыми.
Я знаю, что это довольно скромная установка, и я не ожидаю высочайшего уровня производительности, но я хотел бы видеть 90-100 МБ / с. Есть идеи?
1 ответ
Вы не указали версию CentOS, установленную в качестве гостя VMWare... но давайте предположим, что это CentOS 6.x.
Планировщик ввода-вывода CFQ по умолчанию является плохим выбором для гостевых виртуальных машин (и большинства систем). Вы хотите изменить это. Раньше я просто рекомендовал устанавливать планировщик на крайний срок, но сейчас есть более простой способ для систем RHEL/CentOS...
Лучший способ справиться с этим и парой других настроек - это загрузить настроенный фреймворк и применить лучший профиль к системе.
В твоем случае:
yum install tuned tuned-utils
После установки попробуйте один из соответствующих профилей. Для ВМ я либо делаю enterprise-storage
или же virtual-guest
, Проверьте и посмотрите, что работает лучше для вас. Между изменениями профиля перезагрузка НЕ требуется.
tuned-adm profile virtual-guest
Рассуждение:
Редактировать:
Ну, это улучшение. Убедитесь, что у вас в гостях установлены инструменты VMWare. Другие элементы включают настройку файловой системы (например, noatime
) и тому подобное... но на самом деле эти результаты не должны иметь значения за определенным моментом. dd
Тест не является представителем реалистичных моделей использования.
Один из других инструментов, таких как bonnie ++ или iozone, был бы более полезным. Захватите их через yum
,
Как виртуальная машина, вам нужно заниматься небольшими случайными операциями чтения и записи. Это будет иметь гораздо большее значение, чем последовательная запись показателей из вашего dd
тестовое задание.