一、什么叫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分区小于等于物理内存比较好。
四、内存的查看
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
[[email protected] /]# 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 表示进程和其他进程共享的内存大小。
linux下的swap分区