우선, 이 질문은 실제로 제가 가진 문제가 아니라 오히려"왜 이런거야". Windows 세계에서 몇년을 보낸 후 Linux로 돌아오려고 하는데 잃은 것이 너무 많습니다... 그래서 새롭게 배웁니다. :)
내 네트워크에서 파일 서버 역할을 하는 Windows 10 x64 시스템이 있습니다. Ubuntu Mate 16.04에서 공유에 액세스합니다. 주요 파일 브라우저는 Caja입니다.
좋은 부분은 다음과 같습니다. 내 네트워크에서 네트워크 공유를 탐색하고 파일 복사를 시작하면 최대 속도는 약 600Mbit입니다. 그러나 CIFS를 사용하여 Fstab에 공유를 영구적으로 마운트하면(다음에 따라)https://help.ubuntu.com/community/MountWindowsSharesPermanently) 전체 링크 속도(1Gbit)를 활용할 수 있습니다. 터미널을 통해 smbclient를 사용할 때도 전체 링크 속도를 활용할 수 있습니다.
Caja(및 내가 알 수 있는 바에 따르면 Nautilus)의 경우가 왜 그런지 설명할 수 있는 사람이 있나요? 이에 대해 더 자세히 읽을 수 있는 링크를 알려주실 수 있나요? CIFS와 SMB는 기본적으로 같은 것이 아닌가요?
감사해요!
업데이트:Intel I217-V(rev 04) NIC를 사용하고 있습니다.
답변1
SMB는 LAN 네트워크를 통해 파일을 쓰기 위해 IBM이 개발한 서버 메시지 블록입니다. CIFS는 공통 인터넷 파일 시스템입니다. CIFS는 Microsoft에서 수행한 SMB의 특정 구현입니다.
1.) 요즘 SMB의 CIFS 구현은 거의 사용되지 않습니다. 대부분의 최신 스토리지 시스템은 더 이상 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 처리량(bps)입니다. 기가비트 네트워크가 있을 수 있지만 단일 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
Samba는 비동기 파일 지원 I/O 지원으로 구축되어야 합니다.
aio read size = 16384
aio write size = 16384
또한 내 경우에는 nsswitch.conf에서 이름 조회 순서를 변경해야 했습니다. 이 구성에는 다음과 같은 줄이 포함되어 있는 것으로 나타났습니다.
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
간단히 호스트 줄에 "wins"를 추가하면 문제가 해결됩니다.
hosts: files wins mdns4_minimal [NOTFOUND=return] dns mdns4