diff options
author | dyson <dyson@FreeBSD.org> | 1996-06-26 05:39:27 +0000 |
---|---|---|
committer | dyson <dyson@FreeBSD.org> | 1996-06-26 05:39:27 +0000 |
commit | 9f0819bc54b2152ee968fc72f9a450d2b4ff862e (patch) | |
tree | 48f770f322cba924e42b174cb8cb3f34755ab4ff /sys/vm/vm_param.h | |
parent | 9ca4dee9f50d3922b026ecabfc5169f84c89ae72 (diff) | |
download | FreeBSD-src-9f0819bc54b2152ee968fc72f9a450d2b4ff862e.zip FreeBSD-src-9f0819bc54b2152ee968fc72f9a450d2b4ff862e.tar.gz |
This commit does a couple of things:
Re-enables the RSS limiting, and the routine is now tail-recursive,
making it much more safe (eliminates the possiblity of kernel stack
overflow.) Also, the RSS limiting is a little more intelligent about
finding the likely objects that are pushing the process over the limit.
Added some sysctls that help with VM system tuning.
New sysctl features:
1) Enable/disable lru pageout algorithm.
vm.pageout_algorithm = 0, default algorithm that works
well, especially using X windows and heavy
memory loading. Can have adverse effects,
sometimes slowing down program loading.
vm.pageout_algorithm = 1, close to true LRU. Works much
better than clock, etc. Does not work as well as
the default algorithm in general. Certain memory
"malloc" type benchmarks work a little better with
this setting.
Please give me feedback on the performance results
associated with these.
2) Enable/disable swapping.
vm.swapping_enabled = 1, default.
vm.swapping_enabled = 0, useful for cases where swapping
degrades performance.
The config option "NO_SWAPPING" is still operative, and
takes precedence over the sysctl. If "NO_SWAPPING" is
specified, the sysctl still exists, but "vm.swapping_enabled"
is hard-wired to "0".
Each of these can be changed "on the fly."
Diffstat (limited to 'sys/vm/vm_param.h')
-rw-r--r-- | sys/vm/vm_param.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/vm/vm_param.h b/sys/vm/vm_param.h index 7f05ebf..118ea66 100644 --- a/sys/vm/vm_param.h +++ b/sys/vm/vm_param.h @@ -61,7 +61,7 @@ * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * - * $Id: vm_param.h,v 1.4 1995/01/09 16:05:57 davidg Exp $ + * $Id: vm_param.h,v 1.5 1995/12/10 02:34:29 bde Exp $ */ /* @@ -116,7 +116,9 @@ extern int page_shift; #define VM_V_CACHE_MIN 7 /* cnt.v_cache_max */ #define VM_V_CACHE_MAX 8 /* cnt.v_cache_min */ #define VM_V_PAGEOUT_FREE_MIN 9 /* cnt.v_pageout_free_min */ -#define VM_MAXID 10 /* number of valid vm ids */ +#define VM_PAGEOUT_ALGORITHM 10 /* pageout algorithm */ +#define VM_SWAPPING_ENABLED 11 /* swapping enabled */ +#define VM_MAXID 12 /* number of valid vm ids */ #define CTL_VM_NAMES { \ { 0, 0 }, \ @@ -129,6 +131,8 @@ extern int page_shift; { "v_cache_min", CTLTYPE_INT }, \ { "v_cache_max", CTLTYPE_INT }, \ { "v_pageout_free_min", CTLTYPE_INT}, \ + { "pageout_algorithm", CTLTYPE_INT}, \ + { "swapping_enabled", CTLTYPE_INT},\ } /* |