2

У меня есть 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?

1 ответ1

1

Согласно форуму проблема с 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 должна быть еще одна неопознанная проблема.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .