Apache 服务 Samba 共享导致性能低下?

Apache 服务 Samba 共享导致性能低下?

这是有关 Apache 和 Samba 之间交互问题的问题。

我们的 Linux 服务器(位于私有内联网上)安装了一个物理上距离数千英里的 Windows 共享,并通过 Apache 为其提供服务。这样,我们的用户就可以通过 HTTP 而不是 file:// URL 查看共享上的文件。但是,有时,单个 HTTP 命中会产生多个 Apache 线程,它们同时访问同一个 SMB 文件,并处于“发送回复”(“W”)状态 10 分钟或更长时间。Apache 的服务器状态页面显示许多相同的线程,如下所示,这些线程已有 1434 秒历史,所有线程的生命周期都略有不同(在“SS”列中):

Srv     PID     Acc          M   CPU   SS   Req   Conn   Child  Slot     Client         VHost       Request
33-1    28411   0/146/27463  W   9.20  1434 0     0.0    0.56   689.97   192.168.0.25   someserver  GET /share/foo/myfile.xlsx HTTP/1.1

有人知道为什么会发生这种情况以及我们如何防止这种情况发生吗?有没有更好的方法来实现我们与 Windows 共享建立 HTTP 连接的目标?

我们的 /etc/fstab 条目是:

//server//sharename /mnt/foo cifs ro,auto,credentials=/my/file,nosuid,nodev 0 0

httpd.conf 条目是:

Alias /share/foo "/mnt/foo"
<Directory "/mnt/foo">
    EnableSendfile Off
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

我们还看到该服务器上的负载峰值,其中平均负载从正常值(1.00)跳升至 20.00 或更高,这可能是由于该问题造成的。

非常感谢。

相关内容