[rhn-users] Tuning VM

Kvetch kvetch at gmail.com
Mon Nov 14 21:44:16 UTC 2005


We have a box that is file server that appears to be having some I/O issues
so I have been reading up on tuning for improved I/O performance. RedHat has
an article regarding how to tune your VM -
http://www.redhat.com/magazine/001nov04/features/vm/#tuning-vm

Does anybody have any experience tuning bdflush? The docs I am reading
appear to be contradicting, or atleast they appear that way to me. Basically
there are 6 tunable parameters for bdflush – nfract, ndirty, interval,
age_buffer, nfract_sync, & nfract_stop_bdflush.

The docs state their definitions to be
*nfract* - The percentage of dirty pages in the buffer cache required to
activate the bdflush task

*ndirty* - The maximum number of dirty pages in the buffer cache to write to
disk in each bdflush execution

*interval** *- The number of jiffies (10ms periods) to delay between
bdflushiterations

*age_buffer* - The time for a normal buffer to age before it is considered
for flushing back to disk

*nfract_sync* - The percentage of dirty pages in the buffer cache required
to cause the tasks which are writing pages of memory to begin writing those
pages to disk instead

*nfract_stop_bdflush* - The percentage of dirty pages in buffer cache
required to allow bdflush to return to idle state

It then says
*Generally, systems that require more free memory for application allocation
want to set the **bdflush** values higher (except for the **age_buffer**,
which would be moved lower), so that file data is sent to disk more
frequently and in greater volume, thus freeing up pages of RAM for
application use. This, of course, comes at the expense of CPU cycles because
the system processor spends more time moving data to disk and less time
running applications. Conversely, systems which are required to perform
large amounts of I/O would want to do the opposite to these values, allowing
more RAM to be used to cache disk file so that file access is faster.*

To me, this ^ looks like the opposite of what the definitions for each
parameter state. I would think if I want to allow more RAM to be used for
faster disk access than I would want to *INCREASE* all of the parameters ( I
am not positive about nfract_stop_bdflush though). Am I reading this wrong
because to me it looks like it is contradicting itself. For example, if I
want to free up RAM why wouldn't I lower nfract, thus lowering the required
amount of dirty pages in the buffer cache before it writes back to
disk? Earlier
in the article they have an example that states

*#bump up the percentage of memory in use to activate bdflush**
vm.bdflush="40 500 0 0 500 3000 60 20 0"***

If I take that and compare it to the standard RHEL 3 /proc/sys/vm/bdflush of

50 500 0 0 500 3000 80 50 0

It would seem to me that this would lower the amount of memory in use to
activate bdflush.
Am I missing something and just completely not understanding this or is this
doc and example incorrect?

Thanks,
Nick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/rhn-users/attachments/20051114/63db3a60/attachment.htm>


More information about the rhn-users mailing list