Производительность AFP, NFS и SMB на macOS Mojave

Производительность AFP, NFS и SMB на macOS Mojave
Производительность AFP, NFS и SMB на macOS Mojave

Если вы пользователь Mac, вам может быть интересно, какой протокол обмена файлами обеспечивает наилучшую производительность при использовании сетевого устройства хранения данных (NAS), такого как Synology, или устройства NAS/Thunderbolt over Ethernet, такого как КНАП. Поскольку macOS позволяет выбирать между протоколами AFP, NFS, SMB и CIFS, иногда бывает сложно сделать правильный выбор, особенно если учесть, что некоторые из этих протоколов имеют разные версии, которые могут работать по-разному. Добавьте к этому тот факт, что сама macOS может вести себя по-разному в зависимости от того, какую версию вы используете, и это может быстро раздражать многих фотографов, которые просто пытаются максимально эффективно использовать свое оборудование.

В настоящее время я проверяю другое устройство QNAP и решил протестировать все эти протоколы на последней версии macOS Mojave 10.14.3 на моем iMac Pro со встроенным соединением 10 GbE. Устройство QNAP с 4 отсеками предлагает как Thunderbolt over Ethernet, так и варианты подключения 10 GbE, поэтому я протестировал оба варианта, хотя оказалось, что Thunderbolt обеспечивает более высокую общую производительность, поэтому я решил использовать его вместо 10 GbE. Чтобы убедиться, что устройство QNAP с 4 отсеками работает с максимальным потенциалом, я использовал быстрые диски WD Red со скоростью 7200 об/мин, настроенные в конфигурации RAID 0. Анализатор файловой системы в составе QNAP Diagnostic Tool показал, что потенциальная скорость чтения тома составляет примерно 680 МБ/с и скорость записи 570 МБ/с, что вполне прилично для четырех дисков в конфигурации RAID 0 (при этом каждый диск потенциально способен выполнять до 180-190 МБ/сек, по данным HDD Analyser). На iMac Pro ничего не изменилось с точки зрения конфигурации, по умолчанию используются файлы /etc/nfs.conf, /etc/nsmb.conf и /etc/sysctl.conf (если вы используете более старую версию macOS, вам следует отредактировать /etc/nsmb.conf и обязательно добавьте в файл «signing_required=no», иначе скорость передачи данных по протоколу SMB сильно ухудшится).

Чтобы убедиться, что мои данные более точны, а не просто локализованы в одной системе NAS, я также провел аналогичный тест на NAS Synology DS1817+ с 8 отсеками и возможностью подключения 10 Гбит, который я рассматривал в прошлом году. Диски Synology имеют конфигурацию RAID 6 и используют диски HGST емкостью 6 ТБ со скоростью вращения 7200 об/мин. Поскольку Synology DS1817+ не имеет соединения Thunderbolt, все тесты проводились в сети 10 Гбит. Чтобы убедиться, что я могу получить максимально возможную скорость сети, iMac Pro, Synology DS1817+, а также сетевой коммутатор 10 GbE были настроены на 9000 кадров MTU Jumbo. Давайте сделаем краткий обзор каждого протокола обмена файлами, а затем сразу же приступим к сравнениям и выводам.

Что такое ОВП?

AFP, что означает Apple Filing Protocol, представляет собой собственный сетевой протокол, разработанный как часть операционной системы Mac. Первоначально он был известен как AppleTalk, но позже был изменен и переименован в AFP. Поскольку он является родным для macOS, он является наиболее совместимым и многофункциональным среди всех поддерживаемых сетевых протоколов. Он имеет встроенную поддержку поиска Spotlight, Time Machine, псевдонимов Mac и служб Bonjour, с которыми другие протоколы несовместимы.

Что такое NFS?

Сетевая файловая система (NFS) - это протокол распределенной файловой системы, разработанный для использования в средах операционных систем Unix/Linux. Он основан на открытом стандарте и за прошедшие годы претерпел ряд изменений и дополнений со стороны сообщества Unix/Linux, начиная с версии 2 (NFS v2) и заканчивая последней версией NFS 4.2, опубликованной в 2016 году. современные реализации NFS основаны на версиях 3 и 4 протокола, при этом некоторые системы обеспечивают поддержку 4.1, а теперь и 4.2. macOS изначально поддерживает NFS v3 и NFS v4, хотя поддержку версии 4 необходимо включить вручную через файл /etc/nfs.conf, поскольку операционная система по умолчанию подключается к версии 3.

Что такое SMB/CIFS?

Блок сообщений сервера (SMB) - это сетевой протокол обмена файлами, разработанный Microsoft, а Common Internet File System (CIFS) - одна из его версий. Подобно AFP, SMB/CIFS были разработаны как собственные протоколы для родительской операционной системы Microsoft Windows. SMB также предоставляет некоторые специфические функции, такие как сетевая печать, аутентификация общих папок, блокировка файлов и т. д. macOS имеет встроенную поддержку SMB 1/CIFS, SMB 2, а также SMB 3.

Короче говоря, эти три протокола - это протоколы Apple, Unix и Windows. У каждого есть свои плюсы и минусы, но для пользователей Mac обычно лучше выбрать AFP.

Сравнение производительности AFP, NFS и SMB/CIFS

Теперь, когда вы понимаете основные различия между этими протоколами, давайте посмотрим, как они все сравниваются при работе с большим количеством сетевого трафика и трафика Thunderbolt. Взгляните на таблицу ниже, в которой суммированы результаты производительности, полученные мной от QNAP NAS/DAS с 4 отсеками:

Протокол
АФП Н/Д 649 МБ/сек 306 МБ/сек
NFS v3 / v4 551 МБ/сек 121 МБ/сек
СМБ v1 161 МБ/сек 169 МБ/сек
СМБ v3 652 МБ/сек 624 МБ/сек

Всего я провел 5 тестов для каждого протокола и версии и выбрал лучший результат.

Как видите, худший результат здесь у NFS. Хотя он неплохо справился со скоростью чтения, составив в среднем около 551 МБ/с в трех тестах с использованием файла размером 4 ГБ (с помощью инструмента тестирования AJA System Test Lite), скорость записи была довольно ужасной - 121 МБ/с. Несмотря на то, что AFP является родным протоколом macOS, он также разочаровал с точки зрения производительности записи на QNAP, хотя скорость чтения была превосходной. Лучшим по производительности здесь является SMB v3: используя этот протокол, я смог получить скорость чтения 652 МБ/с и скорость записи 624 МБ/с, что было весьма впечатляюще. SMB v1/CIFS в целом ужасен, показывает очень низкую скорость чтения и записи, поэтому его следует избегать любой ценой.

Вот скриншот из AJA System Test Lite для приведенного выше результата SMB v3:

Результаты тестирования SMB v3 QNAP
Результаты тестирования SMB v3 QNAP

А вот скриншот результата AFP:

Результаты тестирования AFP с QNAP
Результаты тестирования AFP с QNAP

После выполнения этих тестов я понял, что, возможно, реализация AFP в QNAP была просто плохой, поэтому я решил повторить те же тесты на Synology NAS. Ниже приведена сводка результатов выполнения того же теста на Synology DS1817+:

Протокол
АФП Н/Д 1105 МБ/сек 506 МБ/сек
NFS v3 / v4 590 МБ/сек 156 МБ/сек
СМБ v1 75 МБ/сек 173 МБ/сек
СМБ v3 1108 МБ/сек 547 МБ/сек

Synology DS1817+ смог добиться более высокой скорости чтения благодаря большему количеству физических дисков, и, как вы можете видеть из приведенной выше таблицы, мне удалось получить более 1. Скорость 1 ГБ/с при использовании протоколов AFP и SMB v3. Однако ситуация немного иная, когда дело касается скорости записи. Как и в первой таблице, лучшим результатом снова оказался SMB v3, продемонстрировавший отличную производительность чтения и записи. AFP работал лучше на Synology NAS по сравнению с QNAP, но все равно отставал на 50-75 МБ/с. Я повторял тесты несколько раз с 4 ГБ и 8 ГБ последовательных операций чтения/записи, и результаты все равно были довольно стабильными, в целом ставя SMB v3 выше AFP. SMB v1 следует избегать как чумы на Synology - мне не удалось добиться скорости чтения выше 75 МБ/с, что, по сути, показывает, что реализация этой версии, вероятно, содержит ошибки.

Вывод

Исходя из того, что я вижу от двух разных поставщиков NAS, похоже, что SMB v3 - лучший сетевой протокол, который можно использовать с точки зрения общей производительности в macOS, а AFP - второй лучший. Следует избегать как SMB v1, так и NFS - они продемонстрировали довольно разочаровывающую производительность записи. Если для вас важны определенные функции macOS, предоставляемые AFP, вам следует протестировать SMB v3 и AFP на своем устройстве NAS и посмотреть, как каждый из них работает по отдельности. Для Synology разница в производительности выглядит не очень заметной, но у любого, кто использует устройство QNAP, AFP отнимает почти половину скорости записи, а это уж слишком