This is a remarkably easy problem to solve.
The inotify API provides a mechanism for monitoring filesystem events. Inotify can be used to monitor individual files, or to monitor directories. When a directory is monitored, inotify will return events for the directory itself, and for files inside the directory.
The problem is a kernel based value, that determines how much memory is used by processes such as lsyncd. Lets just double check what value it is set to presently:
Check Inotify max_user_watches value presently
[[email protected] php]# cat /proc/sys/fs/inotify/max_user_watches 100000
Check the amount of available memory on the server to ensure it can deal with the increase
[[email protected] php]# free -m total used free shared buffers cached Mem: 7358 6577 781 1 376 2427 -/+ buffers/cache: 3773 3584 Swap: 0 0 0
The cache can be added to free, as a maximum saturation. Linux uses lots of memory it doesn’t really need for efficiency.
Each used inotify watch uses 1 kB RAM in 64 bit systems, for 32bit its half.
Increase Inotify watches to a higher value