Swap Space :
In some cases it’s good for the swap partition to be used. For example, long running processes often access only a subset of the page frames they obtained. This means that the swap partition can safely be used even if memory is available because system memory could be better served for disk cache to improve overall system performance. In fact, in the 2.6 kernel, i.e. RHEL 4, you can define a threshold when processes should be swapped out in favor of I/O caching. This can be tuned with the /proc/sys/vm/swappiness kernel parameter. The default value of /proc/sys/vm/swappiness is 60 which means that applications and programs that have not done a lot lately can be swapped out. Higher values will provide more I/O cache and lower values will wait longer to swap out idle applications.
Depending on the system profile you may see that swap usage slowly increases with system uptime. To display swap usage you can run the free(1) command or you can check the /proc/meminfo file. When the system uses swap space it will sometimes not decrease afterward. This saves I/O if memory is needed and pages don’t have to be swapped out again when the pages are already in the swap space. However, if swap usage gets close to 80% – 100% (your threshold may be lower if you use a large swap space), then a closer look should be taken at the system, see also Checking Swap Space Size and Usage. Depending on the size of your swap space, you may want to check swap activity with vmstat or sar if swap allocation is lower than 80%. But these numbers really depend on the size of the swap space. The actual numbers of swapped pages per timeframe from vmstat or sar are the important numbers. Constant swapping should be avoided at all cost.
Note, never add a permanent swap file to the system due to the performance impact of the filesystem layer.
According to Oracle9i Installation Guide Release 2 a minimum of 512MB of RAM is required to install Oracle9i Server.
According to Oracle Database Installation Guide 10g Release 2 at least 1024MB of RAM is required for 10g R2.
For 10g R2, Oracle gives the following swap space requirement:
RAM Swap Space
--------------------------------------------
1 GB - 2 GB 1.5 times the size of RAM
2 GB - 8 GB Equal to the size of RAM
more than 8GB 0.75 times the size of RAM
Checking Swap Space Size and Usage
You can check the size and current usage of swap space by running one of the following two commands:
grep SwapTotal /proc/meminfo
cat /proc/swaps
free
Swap usage may slowly increase as shown above but should stop at some point. If swap usage continues to grow steadily or is already large, then one of the following choices may need to be considered:
– Add more RAM or reduce the size of the SGA
– Increase the size of the swap space
If you see constant swapping, then you need to either add more RAM or reduce the size of the SGA. Constant swapping should be avoided at all cost. You can check current swap activity using the following commands:
$ vmstat 3 100
procs memory swap io system cpu
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 0 972488 7148 20848 0 0 856 6 138 53 0 0 99 0
0 1 0 962204 9388 20848 0 0 747 0 4389 8859 23 24 11 41
0 1 0 959500 10728 20848 0 0 440 313 1496 2345 4 7 0 89
0 1 0 956912 12216 20848 0 0 496 0 2294 4224 10 13 0 77
1 1 0 951600 15228 20848 0 0 997 264 2241 3945 6 13 0 81
0 1 0 947860 17188 20848 0 0 647 280 2386 3985 9 9 1 80
0 1 0 944932 19304 20848 0 0 705 0 1501 2580 4 9 0 87
The fields si and so show the amount of memory paged in from disk and paged out to disk, respectively. If the server shows continuous swap activity then more memory should be added or the SGA size should be reduced. To check the history of swap activity, you can use the sar command.
For example, to check swap activity from Oct 12th:
# ls -al /var/log/sa | grep "Oct 12" -rw-r--r-- 1 root root 2333308 Oct 12 23:55 sa12 -rw-r--r-- 1 root root 4354749 Oct 12 23:53 sar12 # sar -W -f /var/log/sa/sa12 Linux 2.4.21-32.0.1.ELhugemem (rac01prd) 10/12/2005 12:00:00 AM pswpin/s pswpout/s 12:05:00 AM 0.00 0.00 12:10:00 AM 0.00 0.00 12:15:00 AM 0.00 0.00 12:20:00 AM 0.00 0.00 12:25:00 AM 0.00 0.00 12:30:00 AM 0.00 0.00 ...
The fields pswpin and pswpout show the total number of pages brought in and out per second, respectively.
If the server shows sporadic swap activity or swap activity for a short period time at certain invervals, then you can either add more swap space or RAM. If swap usage is already very large (don’t confuse it with constant swapping), then I would add more RAM.