Monitor the virtual memory system
Author: name contact BSD flavour
Reviewer: name contact BSD flavour
Reviewer: name contact BSD flavour
Concept
The virtual memory subsystem may have an important impact on a system's overall performance. Be able to configure a swap device and review swap usage.
Introduction
TODO: define thrashing (((thrashing)))?
TODO: mention NetBSD example?? UVM: pid 8808 (perl), uid 1000 killed: out of swap
TODO: show examples of swap in fstab
TODO: mention start up scripts for enabling swap devices and files and basic setup
TODO: show examples on FreeBSD and test this; is this the preferred beginner way?
""$ mdev=`mdconfig -a -t vnode -f /path/to/swap/file` ""$ swapon /dev/${mdev}
TODO: check this DragonFly example:
""$ vnconfig -e vn0c /path/to/swap/file swap
TODO: show examples of loading swap file on OpenBSD or NetBSD
On NetBSD and OpenBSD, the swapctl
tool can be used to enable swap devices or files at boot time.
The following two commands are often done by default in NetBSD and OpenBSD startup to enable all block-type swap devices
and swap files listed in /etc/fstab (with "sw"), respectively:
swapctl -A -t blk
swapctl -A -t noblk
NetBSD swap partition example in /etc/fstab:
/dev/wd0b none swap sw 0 0
TODO: show example of swap file in fstab
NetBSD and OpenBSD's swapctl
tool can be used to add, remove, prioritize, and list swap files and devices.
TODO: this topic should not go into detail on virtual memory theory but just quickly explain it
Some tools to quickly show physical and/or virtual memory utilization are pstat, systat, top, and vmstat. On FreeBSD and DragonFly, the swapinfo tool is same as "pstat -s".
The following example lists the enabled swap files and devices:
""$ pstat -s -k ""Device 1K-blocks Used Avail Capacity Priority ""/dev/wd0b 170800 101004 69796 59% 0 ""/opt/swapfile 250000 129680 120320 52% 0 ""Total 420800 230684 190116 55%
TODO: should this mention that this is same as 'swapctl -l -k' ??
TODO: mention that DragonFly has "Type" like "Interleaved". I don't see on FreeBSD. TODO: while NetBSD and OpenBSD have "Priority"
TODO: should this mention unloading swap files? some systems may not support unloading sawp devices??
TODO: show how to read top for virtual memory info
TODO: show how to use vmstat for virtual memory info
TODO: show how to use systat for virtual memory info
Examples
Practice Exercises
More information
pstat(8); systat(1); top(1); vmstat(8); swapctl(8); swapinfo(8)
TODO: add swapon(8) and fstab(5)