Re: swapping and the value of /proc/sys/vm/swappiness

Ray Bryant
2004-09-08T19:42:05Z

Marcelo Tosatti wrote:

>
>
> Huh, that changes the meaning of the dirty limits. Dont think its suitable
> for mainline.
>
>

The change is, in fact, not much different from what is already actually
there. The code in get_dirty_limits() adjusts the value of the user supplied
parameters in /proc/sys/vm depending on how much mapped memory there is. If
you undo the convoluted arithmetic that is in there, one finds that if you are
using the default dirty_ratio of 40%, then if the unmapped_ratio is between
80% and 10%, then

dirty_ratio = unmapped_ratio / 2;

and, a little bit of algebra later:

dirty = (total_pages - wbs->nr_mapped)/2

and

background = dirty_background_ratio/vm_background_ratio * (total_pages
- wbs->nr_mapped)

That is, for a wide range of memory usage, you are really running with an
dirty ratio of 50% stated in terms of the number of unmapped pages, and there
is no direct way to override this.

Of course, at the edges, the code changes these calculations. It just seems
to me that rather than continue the convoluted calculation that is in
get_dirty_limits(), we just make the outcome more explicit and tell the user
what is really going on.

We'd still have to figure out how to encourage a minimum page cache size of
some kind, which is what I understand the 5% min value for dirty_ratio is in
there for.

--
Best Regards,
Ray
-----------------------------------------------
Ray Bryant
512-453-9679 (work) 512-507-7807 (cell)
raybry@sgi.com raybry@austin.rr.com
The box said: "Requires Windows 98 or better",
so I installed Linux.
-----------------------------------------------