Problem in nginx with proxy_cache on

Qiu Linfeng qlinfeng at
Tue May 26 06:08:57 MSD 2009

Recently, I used nginx and found a problem. The problem is at the memory
pool while I turn on the proxy_cache.
Here is how I found it.
I use a tool to test nginx (with proxy_cache on) and found that  CPU idle is
zero while the IO  didn't get to 100%.
So, I think there must have performance problem  in nginx with proxy_cache
on. I used VTune to find the problem. The VTune Report shows 98% of CPU run
at the fuction ngx_palloc() in  ngx_palloc.c.
I read the code and I think while nginx alloc memory from a pool,  there is
a cycle to get the free memory of the pool, the cycle do a lot of times. At
last, I get rid of the do...while, just let each memory alloc  from the
function ngx_palloc_block(). Obviously, I get rid of the "for" cycle in
ngx_palloc_block() too. And the performance is improved a lot, while the CPU
idle is not zero and the IO utils get to 100%.
Can this problem be resolved in a good way?
thanks for all
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the nginx mailing list