설치한 파일 공유에 문제가 있습니다(원격 서버는 SMB v3 Windows Srv 2012 파일 서버입니다). 여러 개의 폴더가 있으며 각 폴더에는 약 200~1500개의 하위 디렉터리가 있습니다.
가장 큰 폴더(ls /du */autocomplete)의 내용을 표시하려고 하면 명령이 영원히 중단됩니다(최소 4시간). -9 옵션을 사용해야만 명령을 종료할 수 있습니다.
전반적인 성능은 꽤 좋아 보입니다.
time dd if=/media/Data/BigFile.tmp of=/dev/null bs=8k
593639+1 records in
593639+1 records out
4863092573 bytes (4.9 GB, 4.5 GiB) copied, 55.9581 s, 86.9 MB/s
시스템: Ubuntu 16.04 LTS | CPU: Xeon 2.4Ghz 메모리: 8GB
시스템 테이블
//server.example.local/Data /media/Data cifs credentials=/etc/samba/ad-usr,noexec,ro,sec=ntlmsspi,vers=3.0 0 0
폴더 내용이 분할되는 것을 방지하고 싶습니다. 폴더 검색은 Windows 클라이언트에서도 잘 작동합니다.
답변1
문제는 Linux 커널의 SMBv2/3에 대한 잘못된 CIFS 헤더 크기로 인해 발생합니다(SMBv2는 어떤 이유로든 여전히 작동함).
이 문제는 커널 v4.12.11에서 수정되었지만 지원되는 커널 버전이 아니므로 설치 여부에 대한 책임은 사용자에게 있습니다 .
확인하다https://cdn.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.12.11, 커밋 9e37b1784f2be9397a903307574ee565bbadfd75를 찾고 있습니다.
이 커널 버전을 설치하려면(Ubuntu 16.04를 사용하고 있는 것으로 확인됩니다):
- 콘솔 등에서 SSH를 통해 Linux 시스템에 연결합니다.
루트 권한을 얻으세요:
sudo -i
CD /tmp//tmp/ 디렉터리에 다른 .deb 패키지가 없는지 확인하세요.
rm -f *.deb
커널 패키지를 다운로드합니다:
얻다http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.12.11/linux-headers-4.12.11-041211_4.12.11-041211.201709070418_all.deb && wgethttp://kernel.ubuntu.com/~kernel-ppa/mainline/v4.12.11/linux-headers-4.12.11-041211-generic_4.12.11-041211.201709070418_amd64.deb && wgethttp://kernel.ubuntu.com/~kernel-ppa/mainline/v4.12.11/linux-image-4.12.11-041211-generic_4.12.11-041211.201709070418_amd64.deb
커널 패키지를 설치합니다:
dpkg -i linux-*.deb
서버를 다시 시작하여 새 커널을 로드합니다.