Sehr langsame SMB-Geschwindigkeiten unter macOS

Sehr langsame SMB-Geschwindigkeiten unter macOS

Da ich vor Kurzem einen neuen Mac Pro (mit Catalina 10.15.2) bekommen habe, habe ich ihn über 10-GBit-Ethernet mit meinem Debian 10/Proxmox-Server verbunden.

Beim Verbinden mit einer Freigabe erreiche ich jedoch nur eine Lese-/Schreibleistung von 150–300 MB/s.

Hier ist meine aktuelle smb.conf:

[global]         
    netbios name = server         
    realm = MY.DOMAIN         
    security = ADS
    workgroup = MYDOMAIN

    wins server = my.domain.test

    winbind enum users = Yes
    winbind enum groups = Yes
    winbind use default domain = Yes
    winbind refresh tickets = Yes
    winbind nested groups = No


    idmap config MYDOMAIN:backend = ad
    idmap config MYDOMAIN:schema_mode = rfc2307
    idmap config MYDOMAIN:range = 10000-20000

    log file = /var/log/samba/log.%m
    log level = 1 
    printcap name = /etc/printcap
    load printers = no
    username map = etc/samba/user.map
    vfs objects = recycle acl_xattr catia fruit streams_xattr
    map acl inherit = yes
    store dos attributes = yes   
    oplocks = no

    # Enable the recycle bin
    recycle:repository = /tank/storage/.recycle/%U
    recycle:touch = Yes
    recycle:keeptree = Yes
    recycle:versions = Yes
    recycle:noversions = *.tmp,*.temp,*.o,*.obj,*.TMP,*.TEMP
    recycle:exclude = *.tmp,*.temp,*.o,*.obj,*.TMP,*.TEMP
    recycle:excludedir = /recycle,/tmp,/temp,/TMP,/TEMP

    # Apple
    fruit:aapl = yes
    fruit:encoding = native
    fruit:locking = none
    fruit:metadata = stream
    fruit:resource = file


[share1]         
    path = /tank/share1
    read only = no       
    valid users = @"MYDOMAIN\share1-Access"
[share2]
    path = /tank/share2
    read only = no
    valid users = @"MYDOMAIN\share2-Access"
[timemachine]
    path = /tank/timemachine
    read only = no
    valid users = @"MYDOMAIN\timemachine-Access"
    oplocks = no
    fruit:aapl = yes
    fruit:time machine = yes
[downloads]
    path = /tank/downloads
    read only = no
    valid users = @"MYDOMAIN\downloads-Acccess"
[cloud-backup]
    path = /tank/cloud-backup
    read only = no
    writeable = yes
    valid users = @"MYDOMAIN\cloud-backup-Access"

Antwort1

Die Implementierung von SMB3 auf macOS Big Sur und höher bietet Multichannel-Unterstützung (siehe diesen Artikel). Dies trägt erheblich zur Leistungssteigerung bei. Vor Samba 4.15 server multi channel support = Yesführt eine entsprechende Einstellung in Ihrer /etc/samba/smb.conf jedoch bei jedem Neustart eines Clients mit einer gemounteten Freigabe zu Panikzuständen.

Ich verwende seit einiger Zeit die folgenden Einstellungen auf meinen macOS-Clients (/etc/nsmb.conf):

signing_required = no
protocol_vers_map=6
port445=no_netbios

Außerdem deaktiviere ich in Samba vieles, was ich nicht brauche:

[global]
allow dns updates = disabled
client min protocol = SMB3_11
dcerpc endpoint servers = rpcecho
delete veto files = Yes
disable netbios = Yes
disable spoolss = Yes
dns forwarder = 192.168.1.1
dns proxy = No
enhanced browsing = No
# Next line requires catia (needed if no Windows clients?)
fruit:encoding = native
fruit:metadata = stream
# Do not use NFS access control entries
fruit:nfs_aces = No
# Enable extended attributes (requires streams_xattr)
fruit:resource = xattr
# Next line is already the default
;fruit:zero_file_id = Yes
host msdfs = No
inherit acls = Yes
inherit permissions = Yes
lm announce = No
load printers = No
log file = /var/log/samba/log.smbd
log level = 1
logging = file
max log size = 10000
# Next 2 lines defer mDNS config to Avahi (better for icon and Time Machine)
mdns name = mdns
multicast dns register = No
name resolve order = host bcast
pam password change = Yes
panic action = /usr/share/samba/panic-action %d
passwd chat = "*New Password:*" %n\n "*Reenter New Password:*" %n\n "*Password changed.*"
passwd program = /usr/bin/passwd %u
printcap cache time = 0
printcap name = /dev/null
printable = No
printing = bsd
restrict anonymous = 2
rpc_daemon:spoolssd = disabled
rpc_server:epmapper = disabled
rpc_server:winreg = disabled
rpc_server:lsarpc = disabled
rpc_server:samr = disabled
rpc_server:netlogon = disabled
rpc_server:netdfs = disabled
rpc_server:dssetup = disabled
rpc_server:wkssvc = disabled
rpc_server:spoolss = disabled
rpc_server:svcctl = disabled
rpc_server:ntsvcs = disabled
rpc_server:eventlog = disabled
rpc_server:initshutdown = disabled
rpc_server:mdssvc = disabled
server max protocol = SMB3_11
server min protocol = SMB3_11
# Next line experimental until 4.15 - macOS clients support multi-channel SMB3
;server multi channel support = Yes
server role = standalone server
server services = rpc, smb
server string = %h server (Samba 4.13.14, Ubuntu 21.10)
show add printer wizard = No
smb ports = 445
unix password sync = Yes
use sendfile = Yes
veto files = /._*/.DS_Store/
vfs objects = catia fruit streams_xattr

[homes]
browseable = No
comment = Home Directory
fruit:time machine = No
guest ok = No
spotlight = No
valid users = %S
writable = Yes

[Backup]
comment = Time Machine
fruit:time machine = Yes
guest ok = No
path = /external/%U
spotlight = No
valid users = %U
writable = Yes

In Zukunft plane ich, die Multi-Channel-Unterstützung des Servers wieder zu aktivieren. Ich hatte keine Lust, alle Abhängigkeiten zu installieren, die zum Kompilieren von Samba 4.15 aus dem Quellcode erforderlich sind.

Übrigens fand ichDieser Artikelinteressant sein, wenn Sie ZFS verwenden (was ich aufgrund der Verzeichnisnamen vermute, die mit tank/ beginnen).

Antwort2

SMB ist auf Macs furchtbar schlecht und war es schon immer. Mein Rat: Machen Sie sich keine Gedanken und installieren Sie einfach Netatalk. Sie erhalten problemlos 1 GB/s. Oder verwenden Sie NFS, damit erreichen Sie auch problemlos 1 GB/s. Netatalk ist jedoch die sicherste Wahl, da sich einige Anwendungen über NFS möglicherweise seltsam verhalten. Außerdem verhält sich Netatalk hinsichtlich Authentifizierung, Dateiberechtigungen usw. durchgängig wie Samba.

Ich habe die Leistung sogar mit „Hackintoshes“ verglichen: Die gleiche Maschine erreicht unter Windows 900 MB/s über SMB, aber 250 MB/s als Mac; über Appleshare steigt die Leistung jedoch auf 1 GB/s.

verwandte Informationen