Почему GlusterFS здесь такой медленный?
Мы настроили зеркальную пару серверов GlusterFS. Никакого особого тюнинга, что бы ни было "из коробки" с GlusterFS-3.5.1 на официальном RPM RHEL6, это то, что мы имеем.
Кластер работает, но производительность довольно ужасная. Например, извлечение большого тарболла (firefox-31.0.source.tar.bz2
) через GlusterFS на localhost занимает колоссальные 44 минуты здесь. Извлечение одного и того же файла напрямую - на тот же диск - занимает менее 2. Существует аналогичное неравенство в удалении созданных деревьев (занимает 10 минут через Gluster)...
Конечно, следует ожидать, что зеркалирование должно произойти, и так далее, файловая система, использующая сеть, будет медленнее - но в 30 раз медленнее? Простое копирование большого файла выполняется быстро, поэтому нам не хватает пропускной способности. Пока идет разгрузка, я вижу как glusterfs
(клиент) и glusterfsd
(серверные) процессы, потребляющие много ресурсов ЦП (около 10% каждый), но система остается на 70% бездействующей - оба gluster-процесса намного более загружены, чем извлечение bzip2 и tar... Что они делают?
Могу ли я сделать некоторые настройки, чтобы значительно улучшить производительность? Или я должен попробовать ceph (или gfarm?) Вместо gluster? Или они все ужасные с большим количеством маленьких файлов? Спасибо!
1 ответ
Gluster ужасен при большом количестве маленьких файлов. По крайней мере, с версии 3.6. Они утверждают, что уже выпущенная бета-версия 3.7 значительно улучшает эту проблему. Я думаю, что эта версия будет выпущена как стабильная в ближайшее время, так как бета-версия была выпущена 28 апреля, и они планировали выпустить стабильную версию в начале этого месяца.