如何增加SMB1的同时未处理的Windows客户端请求的最大数量?
不可不使用
适用场景
- ONTAP 9
- Data ONTAP 7
- SMB 1
问题和解答
什么是CIFS最大多丛?
为了提高运行效率、Citrix和IIS等某些应用程序会将多个CIFS会话合并到同一个TCP连接中。这些连接称为多路传输连接。 cifs.max_mpx 选项(ONTAP 中为-max-mpx)用于确定ONTAP 可以为每个TCP连接支持多少个未完成的SMB操作。达到该值后、客户端应停止向ONTAP 发送其他SMB命令。
注意:仅限最大MPX 的适用场景 SMB1会话数。
与 cifs.max_mpx 选项关联的值不应设置为低于Windows NT默认值50。如果CIFS统计输出显示Max Multiplex大于32、则应增加此数字。
以下是NetApp存储控制器上命令行输出cifs stat -c的部分输出示例:
Max Multiplex = 46, Max pBlk Exhaust = 0, Max pBlk Reserve Exhaust = 0
唯一的合法值为50、126、253、255*和1124。如果未与NetApp客户服务进行明确对话、请勿将此值设置为任何其他值。请注意、不建议将此选项自动设置为高值。高值会占用客户端上的大量资源。如果将此值设置为未经批准的值、则某些客户端会出现发生原因 错误。
注意: 从Data ONTAP 7.3.6和8.0.2开始、选项 cifs.max_mpX 的默认值已更改为255。
选项cifs.max_mpx(仅适用于SMB1会话)值用于控制客户端在初始连接到存储器时传递的数字。更改此值不会影响活动会话。因此、建议仅在CIFS终止时更改此选项。CIFS重新启动后、所有连接都将具有新值。Windows端也有类似的参数、请参见Microsoft文章960259
有关要对IIS服务器进行的更改、请参见Microsoft文章221790。
何时增加存储系统上max_mpx的值?
在以下情况下、可以增加max_mpx (ONTAP 中为-max-mpx)选项的值:
- CIFS最大值将超过选项中指定的当前值。
- Windows客户端在打开MS Office文档时会定期收到消息:"文档已打开"或"文档已写保护"
- CIFS网络性能较慢
- Windows客户端无法连接到Windows NT共享
- cifs.max_mpx和
CIFS stat
最大多路复用值相同 - 可能会显示的另一条消息是运行状况检查警告消息:
sam.misconfig.badValue.cifsMaxMpx
cifs stat
输出显示已超过CIFS.max_MPX上设置的最大多路复用值。
CIFS协议会将CIFS.max_MPX值定义为一个双字节字段、可能的值介于0到65535之间。高值会占用连接到存储器的客户端上的大量资源。如果运行的是Windows 2000服务器、终端服务器或工作站、请参见以下知识库文章。
Windows服务器在Windows注册表中有一个与cifs.max_MPX对应的选项。它称为MaxMpxCt。客户端支持的最大值应由Lanman工作 站MaxCmds参数确定。Microsoft在以下知识库文章中详细介绍了更改这些值:
Microsoft知识库810886:Windows Server 2003、Windows XP和Windows 2000 Server中出现"Network Basic Input-Output System (BIOS) command limit has been reached"错误消息
注意:对于给定的客户端和服务器(存储器)对、限制应在这两个值中较低者。
最终、在存储器上设置CIFS.max_MPX的值时、应使用options cifs.max_mpX命令查看已配置设置的输出、并将其与cifs stat命令提供的最大多路传输的操作值进行比较、以了解该值是接近还是超出。
例如、只有在以下情况下、CIFS.max_MPX的值才会增加到1124以上:
- 只有Windows 2003及更高版本的操作系统连接到存储器
- CIFS stat输出显示正在接近或超过1124的值。
- 已执行测试以验证此设置是否不会发生原因 Windows客户端上的其他性能问题。
注意:未处理的ChangeNotify请求不会计入CIFS统计信息。如果未处理的更改通知请求预计会对CIFS多路复用造成影响、请使用Windows perfmon和track redirectorcurrent命令。
如何增加存储器允许的同时未处理的Windows客户端请求的最大数量:
如果将Windows终端服务器与存储器结合使用、请参见知识库文章 What is the recommended tuning for Windows Terminal Server (WTS) CIFS clients?
如果未使用Windows终端服务器且存储器的CIFS会话数过多、请首先在Data ONTAP 信息库中查看适用于您的特定Data ONTAP 版本的选项CIFS.max_MPX手册页或命令参考指南、然后完成以下步骤:
注:此操作仅适用于SMB 1连接。
- 输入:
cifs stat
%statistics show-periodic -object cifs:vserver -instance vs1 interval 1 -iterations 10 -counter max_commands_outstanding|commands_outstanding (in ONTAP diag mode)
- 记录最大多丛值。
- 输入:
options cifs.max_mpx
[vserver cifs options show -vserver <vserver_name> -instance (in ONTAP diag mode)] - 记录输出。记下默认值。有关选项的详细信息、请参见options cifs.max_mpX手册页。
- 如果步骤1和步骤3中的值相同:
- 终止 CIFS :
cifs terminate
。
[cifs stop (in Clustered Data ONTAP)]
- 输入:
options cifs.max_mpx 126
。
[vserver cifs options modify -vserver <vserver_name> -max-mpx 126 (in ONTAP
diag mode
)] - 重新启动CIFS:
cifs restart
。
[cifs start (in Clustered Data ONTAP)]
- 在CIFS客户端重新建立连接后、再次执行步骤1到4。
- 终止 CIFS :
- 如果步骤1和步骤3中的值保持不变、请再次执行步骤3、但将
cifs.max_mpx
步骤5中的值ii增加到253。如果问题仍然存在、请将cifs.max_mpx
此值增加到1124。
注意:默认情况下、ONTAP 9从255开始。
追加信息
在此处添加您的文本。