macOS에서 매우 느린 SMB 속도

macOS에서 매우 느린 SMB 속도

최근에 새 Mac Pro(Catalina 10.15.2 실행)를 구입했기 때문에 10GBit 이더넷을 사용하여 Debian 10/Proxmox 서버에 연결했습니다.

그러나 공유에 연결할 때 150-300MB/s의 읽기/쓰기 성능만 얻습니다.

내 현재 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"

답변1

macOS Big Sur 이상에서 SMB3 구현에는 다중 채널이 지원됩니다(이 기사를 참조하십시오). 이는 성능을 상당히 향상시키는 데 도움이 됩니다. 그러나 Samba 4.15 이전에는 server multi channel support = Yes/etc/samba/smb.conf에 설정하면 마운트된 공유가 있는 클라이언트가 재부팅될 때마다 패닉이 발생합니다.

나는 한동안 macOS 클라이언트(/etc/nsmb.conf)에서 다음 설정을 사용해 왔습니다.

signing_required = no
protocol_vers_map=6
port445=no_netbios

또한 Samba에서 필요하지 않은 많은 기능을 비활성화합니다.

[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

앞으로는 서버 다중 채널 지원을 다시 활성화할 계획입니다. 소스에서 Samba 4.15를 컴파일하는 데 필요한 모든 종속성을 설치하고 싶지 않았습니다.

그런데 내가 찾았어이 기사ZFS를 사용하고 있다면 흥미로울 것입니다(tank/로 시작하는 디렉토리 이름을 기반으로 한 것으로 의심됩니다).

답변2

SMB는 Mac에서 정말 형편없었고 항상 그랬습니다. 내 조언: 너무 애쓰지 말고 간단히 netatalk를 설치하세요. 아무 문제 없이 1GB/s를 얻을 수 있습니다. 또는 NFS를 사용하면 아무런 문제 없이 1GB/s에 도달합니다. 그러나 Netatalk가 가장 안전한 방법이므로 일부 응용 프로그램은 NFS를 통해 이상하게 동작할 수 있습니다. 또한 Netatalk는 인증, 파일 권한 등에 대해 Samba처럼 일관되게 작동합니다.

"Hackintoshes"를 사용하여 성능도 비교했습니다. Windows를 실행하는 동일한 컴퓨터는 SMB를 통해 900MB/s에 도달하지만 Mac으로 실행하면 250MB/s에 도달합니다. 하지만 Appleshare를 통해 최대 1GB/s까지 올라갑니다.

관련 정보