I know what it does... I guess I am curious why it is fixing a problem in an application i've inherrited. I took over a fairly large tomcat application which acts as Red5 server for a bunch of flex clients, and handle alot of real-time interaction data, which is eventually flushed out to a rails api. The issue was under alot of load over time the resposes to these clients was growing to 3-400 ms where normally it < 100 ms. The client suspected it was a memory issue which we really never could confirm. One day a staging server i was running a load test on bascially stopped taking in requests or was extremely slow. On a whim i sent
sync && echo 3 > /proc/sys/vm/drop_caches
and magically the server sprung back to life and started running at full speed serving these connection out. Was this a coincidence or does this behavior make sense and why?
sync
or just theecho
. Then try to figure out why the server is slow in the cases this fixes (is the CPU maxed? Is IO maxed? Is the system paging?)