02-16-2020
Let me predict what will happen without swap:
the machine will have spikes of high load, and during the spikes will pause its productive work.
Perhaps it will even invoke the OOM process killer.
My observation: a Linux kernel needs (little) swap to smoothly handle certain workloads.
Because it never frees memory without "pressure", and because of the "unused RAM is wasted RAM" philosophy.
So, for safety have a few GB of swap! Even if the kernel.org developers plus a million followers swear these situations do not exist.
In comparison, the Solaris kernel tries to free memory as a background task, in order to avoid a sudden memory pressure. Solaris can run without swap.
However, this was obscured by ZFS, that was developed with a "only free cache under pressure" philosophy. So in Solaris with ZFS either limit the ZFS cache or have some swap!
10 More Discussions You Might Find Interesting
1. Programming
Hi,
Does any one know what tool to use to visualize how is memory layed out for C on linux systems. I mean how much stack portion is used in functional call.
Where exactly does the argument to function sit in memory ?
I have written small program pasted below. But I am not able to infer... (3 Replies)
Discussion started by: parasa
3 Replies
2. Programming
HI
I'm a rookie in C programming and I'm working in Monta Vista Linux. I have to write a program that displays free memory. I have memtester(allready written by someone else) and now I have to type how much amount of memory tester will test and I want that memtester finds out himself how much of... (11 Replies)
Discussion started by: trancedeejay
11 Replies
3. Red Hat
What's the best way to find out how much memory is being used/available? I tried using free, but I didn't quite understand the output. Can someone explain it?
$ free
total used free shared buffers cached
Mem: 16304536 16256376 48160 0 ... (6 Replies)
Discussion started by: junkmail426
6 Replies
4. UNIX for Advanced & Expert Users
Hi,
I having problem with my linux machine
it have 6Gb physical memory and somehow it always almost coming to the bottom neck and than it start writing to the swap memory
you can see that there is more than 4G in cahce, is there any way to clean the cache or to limit it to 2Gb?
host1... (6 Replies)
Discussion started by: Igal Malka
6 Replies
5. Red Hat
how to list the orphaned shared memory?
how to kill them so that shared mem is free again.
thanks (9 Replies)
Discussion started by: melanie_pfefer
9 Replies
6. Linux
Hi All,
We are using the linux servers and need to track the memory utilization of the box. Could anyone advice how the same can be achived.
:) (1 Reply)
Discussion started by: haitorajesh
1 Replies
7. Programming
I am trying to create an application that will be able to sniff memory of other applications.
I am not completely new to systems programming but I am not sure how to go about this task. I understand that accomplishing this mainly require these steps.
1: Get a list of processes
2: Find the... (2 Replies)
Discussion started by: mosey
2 Replies
8. Linux
Hi ,
As I am new to Linux server, I am facing some doubts like: On linux server virtual memory usage goes to 99%, but I have Threshold limit of 95%. So it crossed the threshold limit and alarmd.
Yesterday I moniterd the server using TOP command, and found some of Tibco process was consuming... (4 Replies)
Discussion started by: Jaywantmm
4 Replies
9. Red Hat
Dear Friends ,
I am confused about shared memory in Linux . plz look @ the below output :
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 126G 61G 59G 52% /
tmpfs 1.7G 0 1.7G 0% /dev/shm
Here , I see that every time... (1 Reply)
Discussion started by: shipon_97
1 Replies
10. Red Hat
Hello, I am using Linux os.
$ df -k /dev/shm
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 2023256 1065000 958256 53% /dev/shm
$
Based on my google this, it is shared memory. What is this shared memory and where exactly it is used? Can you... (5 Replies)
Discussion started by: govindts
5 Replies
LEARN ABOUT CENTOS
swapoff
SWAPON(2) Linux Programmer's Manual SWAPON(2)
NAME
swapon, swapoff - start/stop swapping to file/device
SYNOPSIS
#include <unistd.h>
#include <asm/page.h> /* to find PAGE_SIZE */
#include <sys/swap.h>
int swapon(const char *path, int swapflags);
int swapoff(const char *path);
DESCRIPTION
swapon() sets the swap area to the file or block device specified by path. swapoff() stops swapping to the file or block device specified
by path.
If the SWAP_FLAG_PREFER flag is specified in the swapon() swapflags argument, the new swap area will have a higher priority than default.
The priority is encoded within swapflags as:
(prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK
If the SWAP_FLAG_DISCARD flag is specified in the swapon() swapflags argument, freed swap pages will be discarded before they are reused,
if the swap device supports the discard or trim operation. (This may improve performance on some Solid State Devices, but often it does
not.) See also NOTES.
These functions may be used only by a privileged process (one having the CAP_SYS_ADMIN capability).
Priority
Each swap area has a priority, either high or low. The default priority is low. Within the low-priority areas, newer areas are even lower
priority than older areas.
All priorities set with swapflags are high-priority, higher than default. They may have any nonnegative value chosen by the caller.
Higher numbers mean higher priority.
Swap pages are allocated from areas in priority order, highest priority first. For areas with different priorities, a higher-priority area
is exhausted before using a lower-priority area. If two or more areas have the same priority, and it is the highest priority available,
pages are allocated on a round-robin basis between them.
As of Linux 1.3.6, the kernel usually follows these rules, but there are exceptions.
RETURN VALUE
On success, zero is returned. On error, -1 is returned, and errno is set appropriately.
ERRORS
EBUSY (for swapon()) The specified path is already being used as a swap area.
EINVAL The file path exists, but refers neither to a regular file nor to a block device; or, for swapon(), the indicated path does not con-
tain a valid swap signature or resides on an in-memory file system like tmpfs; or, for swapoff(), path is not currently a swap area.
ENFILE The system limit on the total number of open files has been reached.
ENOENT The file path does not exist.
ENOMEM The system has insufficient memory to start swapping.
EPERM The caller does not have the CAP_SYS_ADMIN capability. Alternatively, the maximum number of swap files are already in use; see
NOTES below.
CONFORMING TO
These functions are Linux-specific and should not be used in programs intended to be portable. The second swapflags argument was intro-
duced in Linux 1.3.2.
NOTES
The partition or path must be prepared with mkswap(8).
There is an upper limit on the number of swap files that may be used, defined by the kernel constant MAX_SWAPFILES. Before kernel 2.4.10,
MAX_SWAPFILES has the value 8; since kernel 2.4.10, it has the value 32. Since kernel 2.6.18, the limit is decreased by 2 (thus: 30) if
the kernel is built with the CONFIG_MIGRATION option (which reserves two swap table entries for the page migration features of mbind(2) and
migrate_pages(2)). Since kernel 2.6.32, the limit is further decreased by 1 if the kernel is built with the CONFIG_MEMORY_FAILURE option.
Discard of swap pages was introduced in kernel 2.6.29, then made conditional on the SWAP_FLAG_DISCARD flag in kernel 2.6.36, which still
discards the entire swap area when swapon() is called, even if that flag bit is not set.
SEE ALSO
mkswap(8), swapoff(8), swapon(8)
COLOPHON
This page is part of release 3.53 of the Linux man-pages project. A description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
Linux 2010-11-15 SWAPON(2)