1

I'm currently using an LAMP architecture and I expect a big problem :(

I have several http web server using PHP5. All are mounting via NFS (v3) the directory for all the hosted websites. The file server is running the Nexenta Storage Appliance using ZFS .

The problem is all the NFS client trying to write something in a file over the NFS get this problem :

This is inside the apache2 process:

open("/nfs/website1/file.txt", ORDWR|OCREAT, 0600) = 11647 fstat(11647, {stmode=SIFREG|0600, st_size=23754, ...}) = 0 flock(11647, LOCK_EX

And the process never get the LOCK and keep waiting for... always.

The effect? All the apache2 procces get used and waiting.. my severs can't still proccess the others requests because there is no more proccess available.

I don't now where to find a solution.. for me it.'s on the NFS server side.. but wich configuration is wrong or missing ? How can I find what is wrong? If you need more information about the configuration, just ask me what can help you more :)

mgorven
  • 30,615
  • 7
  • 79
  • 122
Givre
  • 59
  • 5

1 Answers1

2

Sounds like the lock daemon isn't running on the server side.

You can test this by changing your NFS mount (on the client side) to use the nolock option. Using this option doesn't prevent locking within the client machine (local locking is used), but it does prevent locking between machines from working, so this may not be a valid solution for you. You could try it as a test, though, to see if it keeps your web server processes from locking up.

Once you know for sure if the lock daemon is the problem, then you can look into why it's not running on the server side (or if there's some type of firewall that is preventing the lock protocol from making it between the clients and the server).

jlp
  • 411
  • 2
  • 5