我目前使用的是一种灯具架构,我希望有一个大问题:
我有几个使用PHP5的http服务器。所有网站都是通过NFS (v3)挂载的,这是所有托管网站的目录。文件服务器正在使用ZFS运行。
问题是,所有NFS客户端都试图在NFS上的文件中写入某些内容,因此出现了以下问题:
这是在apache2过程中:
open("/nfs/website1/file.txt", ORDWR|OCREAT, 0600) = 11647 fstat(11647, {stmode=SIFREG|0600, st_size=23754, ...}) = 0 flock(11647, LOCK_EX这个过程永远得不到锁并且一直等着..。一直都是。
效果?所有的apache2程序都会被利用和等待。我的服务器仍然无法处理其他请求,因为没有更多的进程可用。
我现在不知道在哪里能找到解决办法。对我来说,S在NFS服务器端.但是这个配置是错误的还是缺失的?我怎么找出哪里出了问题?如果你需要更多关于配置的信息,只需问我什么可以帮助你更多:)
发布于 2012-06-29 06:44:43
听起来锁守护进程没有在服务器端运行。
您可以通过更改NFS挂载(在客户端)使用nolock选项来测试这一点。使用此选项并不会阻止客户端计算机内的锁定(使用本地锁定),但它确实阻止了机器之间的锁定,因此这对您来说可能不是一个有效的解决方案。不过,您可以将其作为一种测试来尝试,以确定它是否可以防止web服务器进程锁定。
一旦您确定锁守护进程是否是问题所在,那么您就可以了解为什么它没有在服务器端运行(或者是否有某种类型的防火墙阻止锁协议在客户端和服务器之间运行)。
https://serverfault.com/questions/403164
复制相似问题