1.18. Samba 서버의 성능 튜닝

특정 상황에서 Samba의 성능을 향상시킬 수 있는 설정과 성능에 부정적인 영향을 미칠 수 있는 설정에 대해 알아봅니다.

이 섹션의 일부는 Sambasouth에 게시된 성능 튜닝 문서에서 채택되었습니다. 라이센스: CC BY 4.0. 작성자 및 기여자: Wiki 페이지의 기록 탭을 참조하십시오.

사전 요구 사항

  • Samba가 파일 또는 인쇄 서버로 설정

1.18.1. SMB 프로토콜 버전 설정

각각의 새로운 SMB 버전은 기능을 추가하고 프로토콜의 성능을 향상시킵니다. 최근의 Windows 및 Windows Server 운영 체제는 항상 최신 프로토콜 버전을 지원합니다. 또한 Samba가 최신 프로토콜 버전을 사용하는 경우 Samba에 연결된 Windows 클라이언트는 성능 개선의 이점을 누릴 수 있습니다. Samba에서 서버 max 프로토콜의 기본값은 지원되는 최신 stable SMB 프로토콜 버전으로 설정됩니다.

참고

항상 안정적인 최신 SMB 프로토콜 버전을 사용하려면 server max protocol 매개 변수를 설정하지 마십시오. 매개 변수를 수동으로 설정하는 경우 최신 프로토콜 버전을 사용하도록 새 버전의 SMB 프로토콜을 사용하여 설정을 수정해야 합니다.

다음 절차에서는 server max protocol 매개 변수에서 기본값을 사용하는 방법을 설명합니다.

절차

  1. /etc/ controlPlane/octets.conf 파일의 [global] 섹션에서 server max protocol 매개 변수를 제거합니다.
  2. Samba 구성 다시 로드

    # smbcontrol all reload-config

1.18.2. 많은 수의 파일이 포함된 디렉터리와의 공유 튜닝

Linux는 대/소문자를 구분하지 않는 파일 이름을 지원합니다. 따라서 파일을 검색하거나 액세스할 때 Samba에서 대문자 및 소문자 파일 이름의 디렉터리를 스캔해야 합니다. 소문자 또는 대문자에서만 새 파일을 만들어 성능을 개선하도록 공유를 구성할 수 있습니다.

사전 요구 사항

  • Samba가 파일 서버로 구성되어 있습니다.

절차

  1. 공유의 모든 파일의 이름을 소문자로 바꿉니다.

    참고

    이 절차의 설정을 사용하여 소문자가 아닌 이름이 있는 파일은 더 이상 표시되지 않습니다.

  2. 공유 섹션에서 다음 매개변수를 설정합니다.

    case sensitive = true
    default case = lower
    preserve case = no
    short preserve case = no

    매개변수에 대한 자세한 내용은 rootfs .conf(5) 매뉴얼 페이지에서 해당 설명을 참조하십시오.

  3. /etc/samba/smb.conf 파일을 확인합니다.

    # testparm
  4. Samba 구성을 다시 로드합니다.

    # smbcontrol all reload-config

이러한 설정을 적용한 후 이 공유에서 새로 생성된 모든 파일의 이름은 소문자를 사용합니다. 이러한 설정으로 인해 Samba는 더 이상 대문자 및 소문자로 디렉터리를 스캔할 필요가 없으므로 성능이 향상됩니다.

1.18.3. 성능에 부정적인 영향을 줄 수 있는 설정

기본적으로 Red Hat Enterprise Linux의 커널은 높은 네트워크 성능을 위해 조정됩니다. 예를 들어 커널은 버퍼 크기에 자동 튜닝 메커니즘을 사용합니다. /etc/ controlPlane/octets.conf 파일에서 socket options 매개 변수를 설정하면 이러한 커널 설정이 재정의됩니다. 결과적으로 이 매개 변수를 설정하면 대부분의 경우 Samba 네트워크 성능이 저하됩니다.

커널에서 최적화된 설정을 사용하려면 /etc/ controlPlane/octets.conf의 [global] 섹션에서 socket options 매개 변수를 제거합니다.