IBM REDP-4285-00 User Manual

Page of 170
Chapter 1. Understanding the Linux operating system 
15
Draft Document for Review May 4, 2007 11:35 am
4285ch01.fm
memory segments” on page 8). When kswapd reclaims pages, it would rather shrink the page 
cache than page out (or swap out) the pages owned by processes.
The good proportion of page cache reclaimed and process address space reclaimed may 
depend on the usage scenario and will have certain effects on performance. You can take 
some control of this behavior by using /proc/sys/vm/swappiness. Please refer to 4.5.1, 
“Setting kernel swap and pdflush behavior” on page 110 f
or tuning detail.
swap
As we stated before, when page reclaiming occurs, the candidate pages in the inactive list 
which belong to the process address space may be paged out. Having swap itself is not 
problematic situation. While swap is nothing more than a guarantee in case of over allocation 
of main memory in other operating systems, Linux utilizes swap space far more efficiently. As 
you can see in Figure 1-12, virtual memory is composed of both physical memory and the 
disk subsystem or the swap partition. If the virtual memory manager in Linux realizes that a 
memory page has been allocated but not used for a significant amount of time, it moves this 
memory page to swap space. 
Often you will see daemons such as getty that will be launched when the system starts up but 
will hardly ever be used. It appears that it would be more efficient to free the expensive main 
memory of such a page and move the memory page to swap. This is exactly how Linux 
handles swap, so there is no need to be alarmed if you find the swap partition filled to 50%. 
The fact that swap space is being used does not mean a memory bottleneck but rather proves 
how efficiently Linux handles system resources. 
1.3  Linux file systems
One of the great advantages of Linux as an open source operating system is that it offers 
users a variety of supported file systems. Modern Linux kernels can support nearly every file 
system ever used by a computer system, from basic FAT support to high performance file 
systems such as the journaling file system JFS. However, because Ext2, Ext3 and ReiserFS 
are native Linux file systems and are supported by most Linux distributions (ReiserFS is 
commercially supported only on Novell SUSE Linux), we will focus on their characteristics 
and give only an overview of the other frequently used Linux file systems.
For more information on file systems and the disk subsystem, see 4.6, “Tuning the disk 
subsystem” on page 113
.
1.3.1  Virtual file system
Virtual Files System (VFS) is an abstraction interface layer that resides between the user 
process and various types of Linux file system implementations. VFS provides common 
object models (i.e. i-node, file object, page cache, directory entry etc.) and methods to access 
file system objects. It hides the differences of each file system implementation from user 
processes. Thanks to VFS, user processes do not need to know which file system to use, or 
which system call should be issued for each file system. Figure 1-14 illustrates the concept of 
VFS.
Note: The phrase “page out” and “swap out” is sometimes confusing. “page out” means 
take some pages (a part of entire address space) into swap space while “swap out” means 
taking entire address space into swap space. They are sometimes used interchangeably.