
启用swap
swap通常在传统机械硬盘上表现更好,在SSD上使用swap可能会造成问题,尤其是硬件老化之后。所以,对于DigitalOcean以及其他使用基于SSD的云主机服务的用户,我们不推荐启用swap。这甚至会影响到跟你的虚拟机共用宿主机的其他用户。
# free -m
total used free shared buff/cache available
Mem: 1.8G 1.0G 486M 25M 305M 613M
Swap: 0B 0B 0B
# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 ext4 79G 31G 45G 41% /
devtmpfs devtmpfs 910M 0 910M 0% /dev
tmpfs tmpfs 920M 0 920M 0% /dev/shm
//创建Swap文件 fallocate 该命令能够创建一个预分配指定大小空间的文件。输入如下指令创建一个4GB的文件
# fallocate -l 4G /swapfile
//首先我们需要更改swap文件的权限,确保只有root才可读,否则会有很大的安全隐患
# chmod 600 /swapfile
# mkswap /swapfile
Setting up swapspace version 1, size = 4194300 Ki
no label, UUID=340a98e6-aa93-4015-847e-4cb29f7fff17
//告知系统将该文件用于swap:
# swapon /swapfile
//查看是否生效
# swapon -s
关于:swapon 失败: 无效的参数
/dev/sda2是扩展分区,不能直接使用。要在扩展分区中建立逻辑分区。
分区有多种类型,主分区,扩展分区(内含一个或多个逻辑分区)。
只有主分区和逻辑分区中才能建立文件系统。
//使Swap文件永久生效
# vi /etc/fstab
//加入以下内容
/swapfile swap swap sw 0 0
//更改Swap配置(可选)
有几个涉及swap的选项可能会影响到系统的性能表现。
_ Swappiness _
swappiness参数决定了系统将数据从内存交换到swap空间的频率,数值设置在0到100之间,代表系统将数据从内存交换到swap空间的力度。
该数值越接近于0,系统越倾向于不进行swap,仅在必要的时候进行swap操作。由于swap要比内存慢很多,因此减少对swap的依赖意味着更高的系统性能。
该数值越接近于100,系统越倾向于多进行swap。
输入如下命令查看当前的swappiness数值:
查看当前:
# cat /proc/sys/vm/swappiness
//0
//临时修改:
# sysctl vm.swappiness=30
//永久修改
# vi /etc/sysctl.conf
将以下内容粘贴到文件末尾:
-----------
vm.swappiness=30
_ 缓存压力(Cache Pressure )_
通过proc文件系统查看缓存压力的当前设定值:cat /proc/sys/vm/vfs_cache_pressure #100
这个数值是比较高的,意味着系统从缓存中移除inode信息的速度比较快。一个保守一些的数值是50,使用sysctl命令进行设置:
//查看
# cat /proc/sys/vm/vfs_cache_pressure //100
# sysctl vm.vfs_cache_pressure=50 //临时修改
# vi /etc/sysctl.conf
---------
vm.vfs_cache_pressure=50
禁用swap
# vi /etc/sysctl.conf
vm.swappiness=0
//关闭
# swapoff -a
//启用
# swapon -a
//注释swap分区 ,前面加'#'
# vi /etc/fstab
#UUID=04bfce28-0e0a-4cf2-9394-36de3a04264b swap swap defaults 0 0