一、什么叫swap分区

    swap分区,即交换区,swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。


二、swap配置对性能的影响

    Swap的调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用。但是分配太多的Swap空间会浪费磁盘空间,而Swap空间太少,则系统会发生错误。

    如果系统的物理内存用光了,系统就会跑得很慢,但仍能运行;如果Swap空间用光了,那么系统就会发生错误。例如,Web服务器能根据不同的请求数量衍生出多个服务进程(或线程)如果系统物理内存不够用,网站打开会很慢,ping可能会丢包,延迟很大;如果Swap空间用完,则服务进程无法启动,通常会出现“application is out of memory”的错误,严重时会造成服务进程的死锁。因此Swap空间的分配是很重要的。


三、swap分区的划分规则

    在linux中,我们对swap分区的划分有一定的规则,当物理内存小于2G时,swap分区大小为物理内存的2倍;超过2G的部分,swap分区大小跟物理内存相等。

公式如下:x代表物理内存,y代表swap分区

    当x<2G 时,y=2x;

    当2G<x<32G 时,y=4+(x-2);

    当x>=32G 时,y<=x;


例:当物理内存为4G的时候,swap为6G;当物理内存大于32G的时候,swap分区小于等于物理内存比较好。

附:规则不是一成不变的,所谓swap分区的划分没必要太过于死板,这里所说的规则仅供参考。


四、内存的查看

1、free -m

    -m已兆为单位查看

2、swapon -s 

    查看swap的状态,已用和未用资源的大小。

3、top

    动态查看,但是使用top命令时资源消耗比较大

   top -p pid 查看某个进程的资源使用情况

其他:P:按%CPU使用率排行
       T:按MITE+排行
     M:按%MEM排行

4、pamp 查看进程的内存映像信息

    pmap -d pid

[root@xujunxian /]# pmap -d 1 | tail

00b7c000       4 rw--- 0000000000024000 0fd:00000 init

00efc000       4 r-x-- 0000000000000000 000:00000   [ anon ]

00f54000      36 r-x-- 0000000000000000 0fd:00000 libnih-dbus.so.1.0.0

00f5d000       4 r---- 0000000000008000 0fd:00000 libnih-dbus.so.1.0.0

00f5e000       4 rw--- 0000000000009000 0fd:00000 libnih-dbus.so.1.0.0

01abd000     132 rw--- 0000000000000000 000:00000   [ anon ]

b76fe000      12 rw--- 0000000000000000 000:00000   [ anon ]

b770f000       4 rw--- 0000000000000000 000:00000   [ anon ]

bfb59000      84 rw--- 0000000000000000 000:00000   [ stack ]

mapped: 2896K    writeable/private: 292K    shared: 0K



最后一行的值,mapped 表示该进程映射的虚拟地址空间大小,也就是该进程预先分配的虚拟内存大小,即ps出的vsz;writeable/private  表示进程所占用的私有地址空间大小,也就是该进程实际使用的内存大小  ;    
shared 表示进程和其他进程共享的内存大小。