Почему установленный CIFS общий ресурс быстрее, чем SMB?

Начнем с того, что этот вопрос на самом деле не проблема, а "почему это так". Я пытаюсь вернуться в Linux после нескольких лет в мире Windows, но я потерял так много... Так что здесь для изучения заново.:)

У меня есть компьютер с Windows 10 x64, выполняющий роль файлового сервера в моей сети. Я получаю доступ к акциям от Ubuntu Mate 16.04. Основной файловый браузер - Caja.

Вот хорошая часть: когда я просматриваю сетевые ресурсы в моей сети и начинаю копировать файл, максимальная скорость составляет около 600 Мбит. Но когда я монтирую ресурс постоянно в Fstab с CIFS (согласно https://help.ubuntu.com/community/MountWindowsSharesPermanently), я могу использовать свою полную скорость соединения (1 Гбит). Я также могу использовать полную скорость соединения при использовании smbclient через терминал.

Может кто-нибудь объяснить мне, почему это происходит с Кахей (и Наутилусом из того, что я могу рассказать), и, возможно, дать мне несколько ссылок, где я могу прочитать больше об этом? Разве CIFS и SMB не одно и то же?

Спасибо!

Обновление: я использую сетевую карту Intel I217-V (версия 04).

1 ответ

SMB - это блок сообщений сервера, который был изобретен IBM для записи файлов по сети LAN. CIFS - это общая файловая система Интернета. CIFS - это особая реализация SMB, разработанная Microsoft.

1.) CIFS-реализация SMB редко используется в наши дни. Большинство современных систем хранения больше не используют CIFS, они используют SMB 2 или SMB 3. В мире Windows SMB 2 является стандартом для Windows Vista (2006), а SMB 3 является частью Windows 8 и Windows Server 2012.

2.) SMB 2 и SMB 3 - это масштабные обновления по сравнению с реализацией CIFS.

Теперь следует иметь в виду (размер окна TCP * 8 бит / RTT в миллисекундах) = максимальная пропускная способность TCP в бит / с. Хотя у вас может быть гигабитная сеть, один поток TCP вряд ли сможет достичь такого высокого уровня.

Теперь для оптимизации конфигурации SMB:

[global]

СМ. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=798532

strict allocate = Yes

СМ. https://lists.samba.org/archive/samba-technical/2014-July/101304.html

allocation roundup size = 4096

Разрешить чтение 65535 байт в одном пакете

читать сырой = да

Подписание сервера замедляет работу.

server signing = No

Поддержка RAW пишите.

write raw = Yes

"строгая блокировка = авто" ИЛИ "строгая блокировка = нет" является допустимым.

strict locking = No

параметры сокета = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF = 131072 SO_SNDBUF = 131072

"минимальный размер получаемого файла" будет передан непосредственно в ядро, recvfile/splice SYSTEM CALL.

min receivefile size = 16384

Используйте более эффективный системный вызов sendfile()

use sendfile = Yes

Самба должна быть построена с поддержкой асинхронных файлов Поддержка ввода-вывода

aio read size = 16384
aio write size = 16384

Также в моем случае мне нужно было изменить порядок поиска имен в nsswitch.conf. Оказывается, эта конфигурация содержала такую ​​строку.

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4 

Простое добавление "wins" в строку hosts решило проблему.

hosts:          files wins mdns4_minimal [NOTFOUND=return] dns mdns4
Другие вопросы по тегам