服务器版本:CentOS Linux release 7.6.1810 (Core)
1.检查系统的Swap信息
首先我们需要检查系统的存储,看看是否已经配置过swap,一个系统可以设置多个swap文件或分区,不过一般来说一个就够了。
使用swapon命令可以检查系统是否已经配置过swap,这是一个通用的swap工具。使用-s标签可列出当前存储设备上的swap使用情况:
swapon -s 如果该命令没有返回出结果,则代表该系统尚未配置过swap。
我们也可以使用free工具来查看系统的整体内存使用情况 这里可以看到内存和swap的使用状态(显示单位为MB)
2.创建Swap文件
使用df -h查看各磁盘大小,如下图,/目录有137G可用,便可以在/目录新建swap文件
输入如下指令创建一个8GB的文件:命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小)
dd if=/dev/zero of=/swapfile bs=1M count=8192
3.启用Swap文件
在我们已经有了swap文件,但系统还不知道应该使用该文件作为swap,这就需要我们告知系统将该文件格式化为swap并启用起来。
首先我们需要更改swap文件的权限,确保只有root才可读,否则会有很大的安全隐患。使用chmod命令进行权限操作:chmod 600 /swapfile
如此,该文件的读写都只有root才能操作。使用ls -lh命令检查一下:
然后,使用如下命令告知系统将该文件用于swap:
mkswap /swapfile
现在,这个swap文件就可以作为swap空间使用了。输入如下命令开始使用该swap:
swapon /swapfile
我们可以输入如下命令来确认一下设置是否已经生效
swapon -s 或者 free
4.使Swap文件永久生效
至此我们已经在系统中启用了swap文件,然而一旦系统重启后,服务器还不能自动启用该文件。要让系统在重启后自动生效swap,我们可以通过修改fstab文件来实现(这是一个管理文件系统和分区的表)。
vim /etc/fstab
在文件末尾加入下面这行内容,告诉操作系统自动使用刚才创建的swap文件:
/swapfile swap swap sw 0 0
添加完毕后,保存退出。以后服务器每次重启都会检查该文件并自动启用swap。
5.更改Swap配置(可选)
有几个涉及swap的选项可能会影响到系统的性能表现。大部分情况下这些选项是可选的,具体要修改成什么样则取决于你的应用需求以及个人偏好。
Swappiness
swappiness参数决定了系统将数据从内存交换到swap空间的频率,数值设置在0到100之间,代表系统将数据从内存交换到swap空间的力度。
该数值越接近于0,系统越倾向于不进行swap,仅在必要的时候进行swap操作。由于swap要比内存慢很多,因此减少对swap的依赖意味着更高的系统性能。
该数值越接近于100,系统越倾向于多进行swap。有些应用的内存使用习惯更适合于这种情况,这也于服务器的用途有关。
输入如下命令查看当前的swappiness数值:cat /proc/sys/vm/swappiness
CentOS 7默认设置了30的swappiness,这对于大部分桌面系统和本地服务器是比较中庸的数值。对于VPS系统而言,可能接近于0的值是更加合适的。
使用sysctl命令可以修改swappiness。比如将swappiness设为10:
sysctl vm.swappiness=10
本次修改将一直生效到下次重启前。如果希望永久修改该数值,则需要编辑sysctl配置文件:
vim /etc/sysctl.conf
将以下内容粘贴到文件末尾:
vm.swappiness = 10
编辑完成后,保存退出,之后服务器每次重启的时候会将swappiness设置为该值。
缓存压力(Cache Pressure )
另一个可以考虑更改的配置项是vfs_cache_pressure,该配置项涉及特殊文件系统元文件条目的存储。对此类信息的频繁读取是非常消耗性能的,所以延长其在缓存的保存时间可以提升系统的性能。
通过proc文件系统查看缓存压力的当前设定值:cat /proc/sys/vm/vfs_cache_pressure
这个数值是比较高的,意味着系统从缓存中移除inode信息的速度比较快。一个保守一些的数值是50,使用sysctl命令进行设置:sysctl vm.vfs_cache_pressure=50
这条命令仅在重启前有效。要让该设置永久有效,需要编辑sysctl配置文件:
vim /etc/sysctl.conf
在文件末尾添加如下内容:
vm.vfs_cache_pressure = 50
保存退出,服务器就会在每次重启后都自动将缓存压力设置为50了。
参考
https://blog.csdn.net/zstack_org/article/details/53258588?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163937832916780269812682%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163937832916780269812682&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-53258588.pc_search_es_clickV2&utm_term=%E5%9C%A8CentOS+7%E4%B8%8A%E6%B7%BB%E5%8A%A0Swap%E4%BA%A4%E6%8D%A2%E7%A9%BA%E9%97%B4&spm=1018.2226.3001.4187