I have an Apache webserver on CentOS. It is not doing anything fantastic or complicated at all but it does at intervals experience a high load (120 for 4 CPUs) for some reason. During this time I see high waits and write durations. I have narrowed this down to flushing of dirtypages to disk to make room for new data.
I have tried many things and talked to the developers who are also puzzled by this. I am stumped.
Details: vmware virtual guest server 4 cpus 12G RAM Apache PHP
I have 40 servers in this cluster that share the same disk structure. Only the webservers are experiencing this issue.
What I think is happening is the dirty pages are full and overflowing. So the flush is switching to a synchronous write and blocking all other I/O until finished.
I have set the following in sysctl.conf:
vm.dirty_background_ratio = 5
vm.dirty_ratio = 10
No real impact though. I added more RAM and again no real impact.
Any ideas?