Как отладить медленную долю самбы от Nautilus?

3354
inf3rno

У меня есть Fedora 23 с Gnome 3 и Nautilus 3.18.5-1.fc23. У меня проблемы со скоростью SMB при использовании Nautilus. Это около 4,4 МБ / с, в то время как любыми другими способами (например, smbclient из терминала) я получил 11 МБ / с с сервера Samba. Есть ли способ отладить это. Я читал на некоторых форумах, что, возможно, Nautilus не устанавливает rsizeдолжным образом при установке диска. Я не уверен в этом. Я не нашел смонтированный диск с lsblk. Согласно некоторым форумам, сетевые диски монтируются /runв gvfsпапку. Это я могу подтвердить, я получил следующий путь:

/run/user/1000/gvfs/smb-share:server=odroid-server,share=asmedia-hdd 

По mount | grep gvfsя получил следующее:

gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000) 

Я не нашел способ проверить эту rsizeвещь. Наверное, это не решило бы мою проблему, я не уверен. Еще одна вещь, которую я хотел отключить с помощью привода, - это реальное время. По крайней мере, на сервере установлено noatime.

Есть ли способ сделать это в конфиге Nautilus (я знаю, что это возможно в fstab)? Есть ли другой способ отладки этой проблемы с медленной скоростью SMB?

2
У меня такие же проблемы с gvfs. Вы нашли решение? emk2203 7 лет назад 0
@ emk2203 Нет, мне не удалось решить эту проблему. Разработчики Samba, возможно, могли бы это исправить. Насколько мне известно. здесь есть сообщение об ошибке: https://bugzilla.samba.org/show_bug.cgi?id=10879, но в настоящее время страница недоступна из-за проблемы https. Я думаю, это не будет исправлено в ближайшее время ...: S inf3rno 7 лет назад 0
@ emk2203 Вероятно, добавление монтирования cifs к fstab - лучший обходной путь. Это небезопасно (хранение пароля samba в виде простого текста), но по крайней мере это работает. inf3rno 7 лет назад 0

1 ответ на вопрос

1
inf3rno

Согласно форуму проблема с gvfs и cifs работает намного лучше. Я не знаком с этими терминами, но могу это подтвердить. При установке привода вручную:

mount -t cifs -o username=root,password=xxxxx //192.168.0.186/asmedia-hdd /media/asmedia-hdd 

Я могу достичь 10 МБ / с в Наутилусе. Единственная проблема в том, что у меня нет сетевого обнаружения, и я не могу отсоединить диск от nautilus. Поэтому я думаю, что это не настоящее решение.

Есть ли способ заставить Наутилуса использовать cifs вместо gvfs?

следующий

Я нашел файл конфигурации, который, кажется, очень актуален:

/usr/share/gvfs/mounts/smb.mount

[Mount] Type=smb-share Exec=/usr/libexec/gvfsd-smb AutoMount=false Scheme=smb 

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

Согласно вики, gvfs - это виртуальная файловая система, поэтому она может быть поверх cif, поэтому я был прав.

следующий

Я нашел этот ответ: https://unix.stackexchange.com/a/44318/126217, пытаясь монтировать gvfs из терминала. В соответствии с этим, export $(dbus-launch)важно использовать любую команду gvfs. Я подтверждаю, что мне не удалось использовать команды gvfs из терминала, и я получил только смутные сообщения об ошибках по этой проблеме.

Я смог смонтировать диск вручную с помощью gvfs:

gvfs-mount smb://WORKGROUP\;root@192.168.0.186/asmedia-hdd 

Мне удалось перечислить смонтированные диски

gvfs-mount -l  Drive(0): KINGSTON SV300S37A120G Type: GProxyDrive (GProxyVolumeMonitorUDisks2) Drive(1): ST31000528AS Type: GProxyDrive (GProxyVolumeMonitorUDisks2) Volume(0): data Type: GProxyVolume (GProxyVolumeMonitorUDisks2) Volume(1): system Type: GProxyVolume (GProxyVolumeMonitorUDisks2) Volume(2): Rendszer számára fenntartott Type: GProxyVolume (GProxyVolumeMonitorUDisks2) Drive(2): TSSTcorp CDDVDW SH-222AB Type: GProxyDrive (GProxyVolumeMonitorUDisks2) Mount(0): asmedia-hdd on 192.168.0.186 -> smb://WORKGROUP;root@192.168.0.186/asmedia-hdd/ Type: GDaemonMount 

До сих пор не так много информации о конфигурации этих установленных дисков. Наутилус не показал установленный диск. Это интересно, потому что, когда я использовал команду mount в терминале, подключенный диск обнаружился в nautilus.

Я нашел точку монтирования здесь:

cd ~/.gvfs/smb-share\:domain\=WORKGROUP\,server\=192.168.0.186\,share\=asmedia-hdd\,user\=root/ 

Я был в состоянии скопировать с подключенного диска gvfs файл MKV, и я использовал

watch -- du -h test.mkv 

чтобы измерить скорость передачи, она была около 4,3 МБ / с. Я использовал ту же технику, измеряя скорость cp, когда использовал команду smbclient. Так что я смог воспроизвести то, что Наутилус делает на заднем плане. Теперь единственное, что мне нужно, это добавить опцию для изменения размера буфера cifs, если это возможно.

заключение:

В итоге я добавил следующее в fstab:

//192.168.0.186/asmedia-hdd /media/asmedia-hdd cifs rw,workgroup=WORKGROUP,username=root,password=xxxxx,noauto,users,iocharset=utf8 0 0 

и использовал

chmod 4755 /usr/sbin/mount.cifs 

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

Мне не нравится это решение, потому что nautilus не обнаруживает сетевые диски таким образом. Другая проблема в том, что я должен был дать разрешения всем пользователям монтировать этот диск, и мне пришлось дать пароль smb, потому что у меня также не было запроса на это. Скорость загрузки была в порядке, и я получил то же самое при загрузке. При загрузке я получил ложные отчеты о скорости и размере файла от nautilus, он пишет 120MB / s в начале, который постоянно уменьшается. Проверив размер файла с помощью подключенного диска gvfs, мне удалось получить информацию о реальных скоростях. Это было около 10 МБ / с.

Я пытаюсь решить это с помощью gvfs. Если мне удастся это сделать, я опубликую ответ, но пока не буду использовать этот обходной путь, смонтированный на cifs.

следующий ~ 2016

Добавлен отчет об ошибке здесь: https://bugzilla.gnome.org/show_bug.cgi?id=762384 возможно, у них есть ответ.

следующий ~ 2017

По словам разработчиков Gnome, это ошибка Samba. Они могут написать патч, но нет никакой гарантии. Разработчики Samba не заботились об этом последние 3 года (2014-17), я даже не уверен, что проект поддерживается.

примечание :

Я измерял это 10 МБ / с через Wi-Fi соединение. Я сделал некоторые измерения через Ethernet с тем же Odroid XU4, когда попытался отладить это. (GVFS использует libsmbclient, поэтому он выполняет что-то похожее на вызов smbget.)

копия с наутилусом (18-19МБ / с)

# mount with nautilus on GUI # copy with nautilus on GUI 

копировать с размером блока smbget по умолчанию (23-24 МБ / с)

# mount with nautilus on GUI smbget -u root -w WORKGROUP smb://192.168.0.186/asmedia-hdd/testfile 

копировать с размером блока 16 КБ (1–64 КБ) (38–57 МБ / с)

# mount with nautilus on GUI smbget -u root -w WORKGROUP smb://192.168.0.186/asmedia-hdd/testfile --blocksize=16777216 

копия с креплением CIFS (70-90 МБ / с)

# mount in fstab //192.168.0.186/asmedia-hdd /media/asmedia-hdd cifs rw,workgroup=WORKGROUP,username=root,password=...,noauto,users,iocharset=utf8 0 0 # copy with nautilus on GUI 

Таким образом, очевидным узким местом является слишком маленький размер блока в GVFS, но скорость превышает размер блока в 1 килобайт и достигает не более 63% скорости CIFS, поэтому в библиотеке smb должна быть еще одна неопознанная проблема.

Спасибо, что нашли время и усилия, чтобы исследовать эту проблему. Я также испытываю эту проблему, и я искал способы улучшить пропускную способность сети в / из общих папок Samba в Nautilus и Nemo. Похоже, что источник проблемы на самом деле в gvfs. Также похоже, что в настоящее время нет способа увеличить размер буфера (размер блока) в gvfs, поскольку в него жестко запрограммировано текущее значение. Я не вижу, как эта проблема может быть исправлена ​​в настоящее время без компиляции gvfs и, вероятно, Gnome, частью которого является gvfs, из исходного кода ... Beef Eater 5 лет назад 0
@BeefEater Вы можете попытаться убедить разработчиков исправить это, возможно, вы более влиятельны, чем я. : D inf3rno 5 лет назад 0

Похожие вопросы