1. 合理配置Swap空间大小
Swap空间是物理内存的扩展,其大小需根据系统内存和使用场景调整。通常建议:
sudo dd if=/dev/zero of=/swapfile bs=1G count=4 # 创建4GB Swap文件
sudo chmod 600 /swapfile # 设置权限(仅root可读写)
sudo mkswap /swapfile # 格式化为Swap格式
sudo swapon /swapfile # 激活Swap
永久生效需添加至/etc/fstab:
echo "/swapfile swap swap defaults 0 0" | sudo tee -a /etc/fstab
作用:避免Swap空间不足导致进程被强制终止,或Swap过大占用过多磁盘空间。
2. 优化vm.swappiness参数
vm.swappiness(范围0-100)控制内核使用Swap的倾向:
# 临时调整(立即生效)
sudo sysctl vm.swappiness=10
# 永久调整(重启后仍有效)
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p # 应用配置
建议值:
3. 选择合适的Swap类型
zram:在内存中创建压缩的块设备(Swap空间),适合内存充足的系统(如桌面、开发机),可减少磁盘I/O;zswap:在内存中创建压缩的Swap缓存(优先使用内存,内存不足时写入Swap),适合内存紧张的系统(如服务器),提升Swap性能。zram示例:sudo modprobe zram # 加载zram模块
echo lz4 > /sys/block/zram0/comp_algorithm # 设置压缩算法(lz4性能好)
echo 2G > /sys/block/zram0/disksize # 设置zram大小(2GB)
sudo mkswap /dev/zram0 # 格式化
sudo swapon /dev/zram0 # 激活
作用:zram提升Swap速度(内存访问速度远快于磁盘),zswap减少磁盘写入(压缩后数据量更小)。
4. 定期监控Swap使用情况
通过工具定期检查Swap使用状态,及时发现异常(如Swap使用率过高):
free -h显示人类可读格式);M排序,找出内存消耗大的进程);vmstat 1 5每秒刷新一次,共5次);5. 优化系统与应用配置
systemctl list-unit-files --state=enabled查看启用服务,systemctl stop <服务名>停止);innodb_buffer_pool_size、Web服务器的worker_processes),限制单个进程的内存使用(ulimit -m设置进程最大内存);sync; echo 1 > /proc/sys/vm/drop_caches清理PageCache,echo 2 > /proc/sys/vm/drop_caches清理Slab缓存),释放物理内存(注意:清理缓存会导致后续读取磁盘变慢,建议在低峰期执行)。6. 使用高性能存储设备
若使用Swap分区,将其放在SSD(固态硬盘)而非机械硬盘(HDD)上,可显著提升Swap操作的速度(SSD的随机读写速度约为HDD的10-100倍)。
操作:将Swap文件或分区创建在SSD挂载目录(如/mnt/ssd/swapfile),并按照前述步骤格式化、激活即可。
作用:减少Swap导致的磁盘I/O瓶颈,避免因I/O等待时间过长影响系统响应速度。