When auto-sizing the buffer cache, limit the amount of physical memory
used as the estimation of size, to 32GB. This provides around 100K of buffer headers and corresponding KVA for buffer map at the peak. Sizing the cache larger is not useful, also resulting in the wasting and exhausting of KVA for large machines. Reported and tested by: bdrewery Sponsored by: The FreeBSD Foundation
This commit is contained in:
parent
aed1e745d0
commit
92fab43f7f
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=251282
@ -560,7 +560,8 @@ kern_vfs_bio_buffer_alloc(caddr_t v, long physmem_est)
|
||||
nbuf += min((physmem_est - 4096) / factor,
|
||||
65536 / factor);
|
||||
if (physmem_est > 65536)
|
||||
nbuf += (physmem_est - 65536) * 2 / (factor * 5);
|
||||
nbuf += min((physmem_est - 65536) * 2 / (factor * 5),
|
||||
32 * 1024 * 1024 / (factor * 5));
|
||||
|
||||
if (maxbcache && nbuf > maxbcache / BKVASIZE)
|
||||
nbuf = maxbcache / BKVASIZE;
|
||||
|
Loading…
Reference in New Issue
Block a user