throttling NFS writes

Mikhail Teterin mi+mx at
Sat Nov 19 00:24:46 GMT 2005


We have an unusual problem with NFS writes being _too fast_ for our good.

The system is accepting database dumps from NFS-clients and begins compressing 
each dump as soon, as it begins arriving (waiting for more via kevent, if 

The NFS-clients (database servers) run on slow Sparc processors and can not be 
bothered to compress their data...

The setup works quite well, if the to-be compressed data is still in memory, 
when the compressor gets to it.

"Unfortunately", those Sparc systems have rather fast I/O rates and manage to 
write their dumps faster, than the compressor can compress it. When this 
happens, the overall performance of the backup script goes down through the 
floor :-(, because it forces the disk to read the middle of a file (for 
compression), while data keeps arriving (from the NFS-client) at the end of 

So we'd like to stall the client's dumping, so that the compressor can keep 
up. Short of limiting NFS-bandwidth via ipfw, is there a way to control NFS 
speed dynamically?

The uncompressed dumps are _huge_, although they compress very well. So we can 
not just accept all of them first and then start compressing -- we don't have 
enough room. There is enough to keep about 3 full-dumps worth of compressed 
data, but even a single uncompressed full dump would not fit...


More information about the freebsd-questions mailing list