Производительность NAS: NFS против Samba против GlusterFS

31

Я планирую свою новую инфраструктуру общего хранилища для небольшой фермы веб-серверов. Поэтому я провел много тестов с большим количеством файловых систем NAS. Таким образом, я получил неожиданные результаты и хотел бы знать, может ли кто-нибудь здесь подтвердить это.

Короче говоря, Samba значительно быстрее, чем NFS и GlusterFS для записи небольших файлов.

Вот что я сделал: я запустил простой «тест rsync» с большим количеством файлов, чтобы сравнить производительность записи для маленьких файлов. Для облегчения воспроизведения я перезапустил его прямо сейчас с содержимым текущего wordpress tar.gz.

  • GlusterFS реплицируется 2: 32-35 секунд , высокая загрузка процессора
  • GlusterFS single: 14-16 секунд , высокая загрузка процессора
  • GlusterFS + NFS клиент: 16-19 секунд , высокая загрузка процессора
  • Сервер ядра NFS + клиент NFS (синхронизация): 32-36 секунд , очень низкая загрузка процессора
  • Сервер ядра NFS + клиент NFS (асинхронный): 3-4 секунды , очень низкая загрузка процессора
  • Самба: 4-7 секунд , средняя загрузка процессора
  • Прямой диск: <1 секунда

Я абсолютно не гуру самбы (я думаю, что мой последний контакт был с samba 2.x), поэтому я ничего не оптимизировал здесь - просто готовый конфиг (пакет debian / squeeze). Единственное, что я добавил: «sync всегда = да», который должен обеспечивать синхронизацию после записи (но, видя эти результаты ...). Без него тесты где примерно на 1-2 секунды быстрее.

Все тесты выполняются на одной машине (самонастраивается, это экспорт NAS), поэтому никаких задержек в сети - чистая производительность протокола.

Боковой узел: в качестве файловой системы я использовал ext4 и xfs. Вышеуказанные результаты с ext4. xfs работали до 40% (меньше времени) лучше. Машины EC2 m1.small экземпляров. Экспорт NAS осуществляется на томах EBS, источники (извлеченные tar) на временном диске.

Итак, начнем: кто-нибудь может объяснить мне, почему самба намного быстрее?

Кроме того: Производительность NFS с сервером ядра должна быть настолько ужасной (ниже, чем у сервера GlusterFS NFS) в режиме синхронизации? Есть идеи, как это настроить?

Спасибо л

Линус Ардберк
источник
Забыл: измерения NFS - лучшие из пары, где я играл с rsize, wsize, noatime, noac, udp vs tcp и так далее.
Линус Ардберк
3
+1 за исследования и тесты!
Bigbio2002
1
Мы наблюдали такие же различия в производительности CIFS и NFS при разработке и тестировании SoftNAS. Я могу подтвердить, что асинхронная NFS намного быстрее, чем синхронизирующая NFS, и Samba исключает NFS для тестов, которые мы использовали с помощью программного обеспечения для тестирования ATTO.
3
Кстати, вы перезагружали каждую машину между тестами, чтобы очистить кэш чтения диска?
Мэтт

Ответы:

5

Мы широко используем Samba, и я всегда обнаруживал, что он обычно работает быстрее, чем NFS, почти во всех случаях (и я говорю только потому, что недостаточно сравнил их).

Из того, что я видел после нескольких перехватов пакетов, протокол SMB может быть болтливым, но в последней версии Samba реализован SMB2, который может выдавать несколько команд с одним пакетом и выдавать несколько команд, ожидая подтверждения от последнего из них. приказ вернуться. Это значительно улучшила свою скорость, по крайней мере , в моем опыте, и я знаю , что я был в шоке, когда я впервые увидел разницу в скорости тоже - Поиск и устранение неисправностей сети Ускоряет - Вековой Дознание

Univ426
источник