BKVASIZE for large block-size filesystems

Sven Willenberger sven at dmv.com
Wed May 25 14:05:47 PDT 2005


[originally posted to freebsd-stable, realized that some amd64-specific
info may be needed here too]

FreeBSD5.4-Stable amd64 on a dual-opteron system with LSI-Megaraid 400G+
partion. The filesystem was created with: newfs -b 65536 -f 8192 -e
15835 /dev/amrd2s1d

This is the data filesystem for a PostgreSQL database; as the default
page size (files) is 8k, the above newfs scheme has 8k fragments which
should fit nicely with the PostgreSQL page size. Now by default param.h
defines BKVASIZE as 16384 (which has been pointed out in other posts as
being *not* twice the default blocksize of 16k). I have modified it to
be set at 32768 but still see a high and increasing value of
vfs.bufdefragcnt which makes sense given the blocksize of the major
filesystem in use.

My question is are there any caveats about increasing BKVASIZE to 65536?
The system has 8G of RAM and I understand that nbufs decreases with
increasing BKVASIZE; how can I either determine if the resulting nbufs
will be sufficient or calculate what is needed based on RAM and system
usage?

Also, will increasing BKVASIZE require a complete make buildworld or, if
not, how can I remake the portions of system affected by BKVASIZE?

Sven



More information about the freebsd-amd64 mailing list