Problem in nginx with proxy_cache on

Igor Sysoev is at
Tue May 26 15:23:07 MSD 2009

On Tue, May 26, 2009 at 10:08:57AM +0800, Qiu Linfeng wrote:

> hi,all
> 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

Try to change NGX_ALIGNMENT to 16.

Igor Sysoev

More information about the nginx mailing list