我想问一下,有没有办法为挂起的文件系统设置超时。
例如,如果 NFS 变得陈旧或者出现任何类型的问题(这与调整 NFS 无关,我对调整 apache 更感兴趣),那么 apache 就会出现负载急剧上升的问题。
我想抑制这种现象。
我已经看过
EnableMMAP 和 EnableSendfile
但我希望有更多方法来调整 Apache。
谢谢布伦特
答案1
抱歉,您正在寻找的解决方案在另一座城堡中。
如果 NFS 挂载(或文档根目录所在的任何文件系统)停止响应,Apache将要陷入深深的麻烦,无论对 Apache 进行多少调整都无济于事。
您需要集中精力监控这些事件,以便在出现问题时收到电子邮件/短信/其他消息。并且,如果 NFS 有问题,请以某种方式修复它或切换到其他方法来满足您的文档根目录需求。
答案2
我知道你说你想调整 Apache,而不是 NFS。问题是,任何进程(Apache 或其他任何进程)在磁盘 IO 上阻塞都将永远不会返回。
对于 NFS,您实际上可以在挂载点控制此行为。请查看man nfs
。
如果您的 NFS 服务器已hard
挂载,如果服务器停止响应,客户端将无限期地等待响应。结果是您的 Apache 进程将挂起。hard
如果您正在覆盖挂载点进行写入并且关心您的数据(您希望写入数据的进程知道它是否/何时完成),则挂载几乎总是首选。
如果您的 NFS 服务器已soft
安装,那么即使 NFS 服务器完全瘫痪,客户端也可能最终返回。将此与 NFS 安装选项结合使用timeo
可指定重新传输超时。
如果运行队列中有许多进程或 IO 阻塞,如您所说,负载会非常高。允许缓慢或挂起的 NFS 操作通过挂载超时soft
可以缓解这种情况。但是,您仍然需要设计一种方法来优雅地将这些故障传播到客户端。