Swap分区,即交换区,系统在物理内存不够时,与Swap进行交换。 其实,Swap的设置及调整对Linux服务器,特别是Web服务器的性能至关重要。通过调整Swap,有时可以越过系统性能瓶颈,节省系统升级费用。
Swap分区在系统的运行内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。
建立Swap分区
在物理机内存不足的情况下,需要在Ubuntu系统中创建交换分区。方法如下:
1 | sudo fallocate -l 1G /swapfile //创建大小为1G的swapfile文件 |
在”/etc/fstab
“文件中添加:”/swapfile swap swap defaults 0 0
“ 使swap永久生效
1 | free -h //查看内存及swap状态 |
停用及删除swap分区
1 | sudo swapoff -v /swapfile //停用swap |
在”/etc/fstab”文件中删除有效 swap 的行
1 | sudo rm /swapfile //删除swapfile文件 |
系统性能监视
Swap空间的分配固然很重要,而系统运行时的性能监控却更加有价值。通过性能监视工具,可以检查系统的各项性能指标,找到系统性能的瓶颈。本文只介绍一下在Solaris下和Swap相关的一些命令和用途。
最常用的是Vmstat命令(在大多数Unix平台下都有这样一些命令),此命令可以查看大多数性能指标。
命令说明:
- vmstat 后面的参数指定了性能指标捕获的时间间隔。
- 3表示每三秒钟捕获一次。第一行数据不用看,没有价值,它仅反映开机以来的平均性能。从第二行开始,反映每三秒钟之内的系统性能指标。
- 这些性能指标中和Swap有关的包括以下几项:
- procs下的w它表示当前(三秒钟之内)需要释放内存、交换出去的进程数量。
- memory下的swpd它表示使用的Swap空间的大小。
- Swap下的si,so
- si表示当前(三秒钟之内)每秒交换回内存(Swap in)的总量,单位为kbytes;
- so表示当前(三秒钟之内)每秒交换出内存(Swap out)的总量,单位为kbytes。
以上的指标数量越大,表示系统越忙。这些指标所表现的系统繁忙程度,与系统具体的配置有关。系统管理员应该在平时系统正常运行时,记下这些指标的数值,在系统发生问题的时候,再进行比较,就会很快发现问题,并制定本系统正常运行的标准指标值,以供性能监控使用。