mdoc(7) police: fix formatting errors in rev 1.27.
This commit is contained in:
parent
f081127113
commit
644a5df944
@ -169,20 +169,34 @@ maintained whether you use MAP_NOSYNC or not. This option is not portable
|
||||
across UNIX platforms (yet), though some may implement the same behavior
|
||||
by default.
|
||||
.Pp
|
||||
WARNING! Extending a file with ftruncate(), thus creating a big hole, and
|
||||
then filling the hole by modifying a shared mmap() can lead to severe
|
||||
file fragmentation. In order to avoid such fragmentation you should
|
||||
always pre-allocate the file's backing store by write()ing zero's into the
|
||||
newly extended area prior to modifying the area via your mmap().
|
||||
The fragmentation problem is especially sensitive to MAP_NOSYNC pages,
|
||||
because pages may be flushed to disk in a totally random order.
|
||||
WARNING!
|
||||
Extending a file with
|
||||
.Xr ftruncate 2 ,
|
||||
thus creating a big hole, and then filling the hole by modifying a shared
|
||||
.Fn mmap
|
||||
can lead to severe file fragmentation.
|
||||
In order to avoid such fragmentation you should always pre-allocate the
|
||||
file's backing store by
|
||||
.Fn write Ns ing
|
||||
zero's into the newly extended area prior to modifying the area via your
|
||||
.Fn mmap .
|
||||
The fragmentation problem is especially sensitive to
|
||||
.Dv MAP_NOSYNC
|
||||
pages, because pages may be flushed to disk in a totally random order.
|
||||
.Pp
|
||||
The same applies when using MAP_NOSYNC to implement a file-based shared
|
||||
memory store. It is recommended that you create the backing store by
|
||||
write()ing zero's to the backing file rather then ftruncate()ing it. You
|
||||
can test file fragmentation by observing the KB/t (kilobytes per transfer)
|
||||
results from an 'iostat 1' while reading a large file sequentially, e.g.
|
||||
using 'dd if=filename of=/dev/null bs=32k'.
|
||||
The same applies when using
|
||||
.Dv MAP_NOSYNC
|
||||
to implement a file-based shared memory store.
|
||||
It is recommended that you create the backing store by
|
||||
.Fn write Ns ing
|
||||
zero's to the backing file rather then
|
||||
.Fn ftruncate Ns ing
|
||||
it.
|
||||
You can test file fragmentation by observing the KB/t (kilobytes per
|
||||
transfer) results from an
|
||||
.Dq Li iostat 1
|
||||
while reading a large file sequentially, e.g. using
|
||||
.Dq Li dd if=filename of=/dev/null bs=32k .
|
||||
.Pp
|
||||
The
|
||||
.Xr fsync 2
|
||||
|
Loading…
Reference in New Issue
Block a user