On 01/07/10 17:41, Rajesh Kumar Mallah wrote: > Hi, > > this is not really a performance question , sorry if its bit irrelevant > to be posted here. We have a development environment and we want > to optimize the non-database parts of the application. The problem is > that subsequent run of queries are execute very fast and makes the > performance analysis a trivial problem. We want that the subsequent runs > of query should take similar times as the first run so that we can work > on the optimizing the calling patterns to the database.
You can get rid of PostgreSQL's caches in shared_buffers by restarting the PostgreSQL server. I don't know if there's any more convenient way. Alternately, just set a really minimal shared_buffers that's just enough for your connections so there's not much room for cached data.
I had set it to 128kb it does not really work , i even tried your next suggestion. I am in virtualized environment particularly OpenVz. where echo 3 > /proc/sys/vm/drop_caches does not work inside the virtual container, i did it in the hardware node but still does not give desired result. regds Rajesh Kumar Mallah.
If you are running a Linux server (as you didn't mention what you're running on) you can drop the OS disk cache quite easily:
AFAIK for most other platforms you have to use a tool that gobbles memory to force caches out. On Windows, most of those garbage tools that claim to "free" memory do this - it's about the only time you'd ever want to use one, since they do such horrid things to performance.