mdounin at mdounin.ru
Mon Jul 13 15:33:21 MSD 2009
On Fri, Jul 10, 2009 at 07:39:46PM -0400, Jim Ohlstein wrote:
> and just found multiple lines in the error log like this one:
> 2009/07/10 10:22:54 [crit] 22476#0: ngx_slab_alloc() failed: no memory
> in cache keys zone "one"
> So I increased the memory available for the zone and reloaded nginx. It
> took over five hours to go through the cache but these are the relevant
> 2009/07/10 12:11:03 [notice] 21038#0: start cache manager process 32730
> 2009/07/10 12:11:04 [notice] 21038#0: cache manager process 22480 exited
> with code 0
> and finally
> 2009/07/10 17:43:27 [notice] 32730#0: http file cache:
> /usr/local/nginx/cache 11638.289M, bsize: 4096
> My questions are:
> Is that simply the total (11638.289MB or 11.4GB) of all of the file
> sizes, or is that the actual disk space consumed taking into account
> total number of blocks used multiplied by the block size? The number
It's size on disk (i.e. number of blocks * block size), but for
files only (it doesn't take directories into account).
> could be quite different given what I estimate are nearly one million
> mostly small files in the cache at this point.
> When I next upgrade nginx (I'm running 0.8.4), and I attempt a "graceful
> upgrade" will it have to go through this entire process again?
Yes. Binary upgrade doesn't preserve shared memory zones, so
cache will be rescanned again.
Note that nginx uses cache even before it was completely scanned,
so it shouldn't be a problem.
More information about the nginx