Назад | Перейти на главную страницу

Что я могу сделать, чтобы оптимизировать скорость копирования NFS в домашней сети 1 Гбит?

У меня есть домашняя сеть с коммутатором 1 ГБит / с в качестве центральной точки и все компьютеры с сетевыми адаптерами 1 ГБит / с. Однако я получаю не более 200 Мбит / с при копировании через общие ресурсы NFS. Кажется, я смогу получить гораздо больше. Чего я могу реально ожидать и как настроить свои системы и сервер NFS для получения более высоких скоростей?

Между прочим, все задействованные системы - это Linux (смесь CentOS и Fedora).

Вас бьют из-за накладных расходов. Вы хотите изучить jumbo-кадры, а также увеличить размер данных чтения / записи nfs. В сети есть множество руководств по настройке производительности NFS, например вот этот это не выглядит слишком устаревшим.

Также помните, что вы никогда не сможете добиться большего, чем скорость диска, поэтому убедитесь, что это не узкое место.

Вы должны демонстративно смотреть в jumbo-кадры. Даже дешевые 5-портовые концентраторы GbE могут делать это в наши дни, однако вам необходимо включить jumbo-кадры на обоих концах соединения. Чтобы включить jumbo-кадры, сделайте следующее

ifconfig eth0 mtu 9000

Вот параметры монтирования, которые я использую при автоматическом монтировании домашних каталогов из нашего файлового сервера.

rw,intr,soft,nfsvers=3.tcp,nolock,noatime,rsize=32768,wsize=32768

Обновите вопрос и сообщите нам, улучшит ли это ситуацию

Jumbo-кадры, безусловно, могут помочь, но не ожидайте, что они волшебным образом дадут вам 100% -ное увеличение пропускной способности. Посмотри мой пост Вот в другом вопросе, в котором обсуждается способ проверки пропускной способности сети без включения дискового ввода-вывода. Это даст вам основу, чтобы увидеть, есть ли другие факторы, не связанные с сетью.

Если вы все же планируете включить Jumbo Frames, как предлагают некоторые здесь, помните о некоторых ограничениях и требованиях.

  • Все устройства на пути должны поддерживать и иметь разрешенные кадры jumbo. Это включает:
    • И отправляющий, и получающий nic
    • Оба порта коммутатора, к которым подключены устройства
    • Все порты коммутатора L2 на пути от отправителя к получателю (соединения коммутатор-коммутатор)
    • Все интерфейсы L3 на пути, если применимо
  • Убедитесь, что все устройства в одном и том же vlan поддерживают и настроены для больших кадров.

Причина для второго пункта: рассмотрим два ПК, настроенных на один и тот же vlan, один настроен на 9000-байтовые кадры, а другой - на 1500-байтовые кадры. ПК1, настроенный для стандартных кадров, сможет успешно отправлять пакеты на ПК2. Однако ответ, который отправит ПК2, будет состоять из кадров размером 9000 байт. Поскольку ПК1 настроен для стандартных кадров, он не сможет обрабатывать большие кадры, и они будут отброшены. Чтобы решить эту проблему, вам необходимо вставить устройство L3 (маршрутизатор) между двумя компьютерами, чтобы они могли обмениваться данными.

Узким местом может быть ваша сеть или жесткие диски. Прежде всего проверьте, какие есть, затем оптимизируйте.

Есть ли у вас возможность включить объединение прерываний сетевого адаптера, масштабирование на стороне приема или любую форму разгрузки TCP (контрольная сумма или полная упаковка)? Они будут иметь огромное значение, если вы сможете их включить, что зависит от ваших сетевых адаптеров и IP-стека.

Для получения информации о NFS имейте в виду, что более новая реализация NFS поддерживает не только UDP, но и TCP. По умолчанию по-прежнему обычно используется UDP. Как ни странно, в очень быстрых сетях TCP может быть быстрее из-за окон. Попробуйте оба варианта и сравните.

Чтобы получить другие советы, просто поищите на сайте. Общая форма этой темы уже забита насмерть одиннадцатьдесят миллиардов раз. :-)

Не забудьте убедиться, что у вас включены jumbo-кадры, и убедитесь, что все используемые вами сетевые коммутаторы также поддерживают jumbo-кадры, а затем были включены. Вы можете захотеть запустить чередование RAID для увеличения скорости на общем ресурсе NFS.