The v_min_process parameter
The v_min_process parameter determines a lower limit for the degree of multiprogramming, which is defined as the number of active processes. Active processes are those that can be run and are waiting for page I/O. Processes that are waiting for events and processes suspended are not considered active nor is the wait process considered active.
Setting the minimum multiprogramming level, the v_min_process parameter effectively keeps v_min_process processes from being suspended. Suppose a system administrator knows that at least ten processes must always be resident and active in RAM for successful performance, and suspects that memory load control was too vigorously suspending processes. If the schedo -o v_min_process=10 command was issued, the system would never suspend so many processes that fewer than ten were competing for memory. The v_min_process parameter does not count:
- The kernel processes
- Processes that have been pinned in RAM with the plock() system call
- Fixed-priority processes with priority values less than 60
- Processes awaiting events
The system default value of v_min_process=2 ensures that the kernel, all pinned processes, and two user processes will always be in the set of processes competing for RAM.
While v_min_process=2 is appropriate for a desktop, single-user configuration, it is frequently too small for larger, multiuser, or server configurations with large amounts of RAM.
If the system you are installing is larger than 32 MB, but less than 128 MB, and is expected to support more than five active users at one time, consider raising the minimum level of multiprogramming of the VMM memory-load-control mechanism.
# schedo -o v_min_process=4On these systems, setting the v_min_process parameter to 4 or 6 may result in the best performance. Lower values of v_min_process , while allowed, mean that at times as few as one user process may be active.
When the memory requirements of the thrashing application are known, thev_min_process value can be suitably chosen. Suppose thrashing is caused by numerous instances of one application of size M. Given the system memory size N, thev_min_process parameter should be set to a value close to N/M. Setting the v_min_process value too low would unnecessarily limit the number of processes that could be active at the same time.