What is Swap?
Linux divides its physical RAM
(random access memory) into chucks of memory called pages. Swapping is
the process whereby a page of memory is copied to the preconfigured
space on the hard disk, called swap space, to free up that page of
memory. The combined sizes of the physical memory and the swap space is
the amount of virtual memory available.
Swapping is necessary for two important reasons. First, when the system
requires more memory than is physically available, the kernel swaps out
less used pages and gives memory to the current application (process)
that needs the memory immediately. Second, a significant number of the
pages used by an application during its startup phase may only be used
for initialization and then never used again. The system can swap out
those pages and free the memory for other applications or even for the
disk cache.
However, swapping does have a downside. Compared to memory, disks are
very slow. Memory speeds can be measured in nanoseconds, while disks are
measured in milliseconds, so accessing the disk can be tens of
thousands times slower than accessing physical memory. The more swapping
that occurs, the slower your system will be. Sometimes excessive
swapping or thrashing occurs where a page is swapped out and then very
soon swapped in and then swapped out again and so on. In such situations
the system is struggling to find free memory and keep applications
running at the same time. In this case only adding more RAM will help.
Linux has two forms of swap space: the swap partition and the swap file.
The swap partition is an independent section of the hard disk used
solely for swapping; no other files can reside there. The swap file is a
special file in the filesystem that resides amongst your system and
data files.
I want that on my Phone, how to do that?
Okay, here goes the real story. Since Android is Linux, that would be possible.
What is needed:
-
Fast (Class 10) Micro-SD Card, if you dont have class 10, class 4 would be great too..
-
CWM or Partitioning software
-
Root (of course)
-
Terminal Emulator app
-
Kernel with swap and init.d support (for example our CM7, 9, 10 and 10.1 ROM)
-
Root Exploring app (for example Root Browser or Root Explorer
Steps:
-
Partition your SD Card, Ask Google how to do that. Make new Swap partition, or you want SD-ext too..
- Open Terminal Emulator, do:
su
fdisk -l dev/block/mmcblk0
- You'll see something like this:
/dev/block/mmcblk0p3 1861 1924 514080 82 Linux swap
- Do the following code, change with your exact swap partition:
su
swapon /dev/block/mmcblk0p3
- Now you can check your swap partition by doing:
free
Now we create the script to do that automatically at boot
-
Open Root exploring apps, head to /system/etc/init.d
-
Make a new file, named 05swap
- Edit that file, copy this up:
#!/system/bin/sh
echo Swap enabled
swapon -a
- Save it and change the permission to :
- Now head to /system/etc and create new file named fstab
- Open it and enter this:
/dev/block/mmcblk0p3 swap swap
Now we set the swappiness value
*the normal value is 60, but you can change to what number you want (max
100). Higher may help to improve overall performance, while setting it
to lower may increase interactivity and overall stability.
- Do this on Terminal Emulator
su
echo vm.swappiness=60 >> /system/etc/sysctl.conf
- Reboot and you're done.