Red Hat Training

A Red Hat training course is available for RHEL 8

第 13 章 调整 Samba 服务器的性能

本章论述了在某些情况下,什么设置可以提高 Samba 的性能,以及哪些设置可能会对性能造成负面影响。

本节的部分内容来自在 Samba Wiki 中发布的 Performance Tuning 文档。许可证: CC BY 4.0。作者和贡献者:请参阅 Wiki 页面上的历史记录选项卡

先决条件

13.1. 设置 SMB 协议版本

每个新的 SMB 版本都会添加功能并提高协议的性能。最新的 Windows 和 Windows 服务器操作系统始终支持最新的协议版本。如果 Samba 还使用最新的协议版本,则连接 Samba 的 Windows 客户端可从性能改进中受益。在 Samba 中,服务器 max 协议的默认值被设置为最新支持的 stable SMB 协议版本。

注意

要总是启用最新的 stable SMB 协议版本,请不要设置 server max protocol 参数。如果手动设置 参数,则需要修改 SMB 协议的每个新版本的设置,以启用最新的协议版本。

以下流程解释了如何使用 server max protocol 参数中的默认值。

流程

  1. /etc/samba/smb.conf 文件中的 [global] 部分删除 server max protocol 参数。
  2. 重新载入 Samba 配置

    # smbcontrol all reload-config

13.2. 与包含大量文件的目录调整共享

Linux 支持区分大小写的文件名。因此,Samba 在搜索或访问文件时需要扫描大写和小写文件名的目录。您可以将共享配置为仅以小写或大写创建新文件,这可以提高性能。

先决条件

  • Samba 配置为文件服务器

流程

  1. 将共享上的所有文件重命名为小写。

    注意

    使用这个过程中的设置,名称不为小写的文件将不再显示。

  2. 在共享部分中设置以下参数:

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

    有关参数的详情,请参考 smb.conf(5) man page 中的描述。

  3. 验证 /etc/samba/smb.conf 文件:

    # testparm
  4. 重新载入 Samba 配置:

    # smbcontrol all reload-config

应用这些设置后,此共享上所有新建文件的名称都使用小写。由于这些设置,Samba 不再需要扫描大写和小写的 目录,这样可以提高性能。

13.3. 可能会对性能造成负面影响的设置

默认情况下,Red Hat Enterprise Linux 中的内核会根据高网络性能进行了微调。例如,内核对缓冲区大小使用自动轮询机制。在 /etc/samba/smb.conf 文件中设置 socket options 参数会覆盖这些内核设置。因此,设置此参数会在大多数情况下降低 Samba 网络性能。

要使用内核中优化的设置,从 /etc/samba/smb.conf[global] 部分中删除 socket options 参数。