调整Swappiness参数:降低系统对Swap的依赖
Swappiness是控制内核使用Swap空间的关键参数,取值范围为0-100(默认60)。值越高,系统越倾向于将内存数据转移至Swap;值越低,越优先使用物理内存。对于追求低能耗的Ubuntu系统,建议将Swappiness设置为10-30(如vm.swappiness=10),以减少硬盘读写操作(Swap使用会增加硬盘功耗)。操作方法:
sudo sysctl vm.swappiness=10;/etc/sysctl.conf文件,添加vm.swappiness=10,保存后运行sudo sysctl -p使配置生效。优化Swap空间类型:优先使用Swap文件而非分区
Swap文件具有更好的灵活性(可动态调整大小)和兼容性,且不会像分区那样影响磁盘分区结构。相比传统Swap分区,Swap文件更适合需要频繁调整的场景,能有效减少因分区调整带来的系统开销(间接降低能耗)。操作方法:
sudo fallocate -l 4G /swapfile;sudo chmod 600 /swapfile(确保仅root可访问);sudo mkswap /swapfile;sudo swapon /swapfile;/etc/fstab,添加/swapfile none swap sw 0 0。合理设置Swap大小:避免过大或过小
Swap大小需根据物理内存调整,避免“过大导致频繁读写”或“过小导致内存溢出”。一般建议:
使用Zram:压缩内存作为Swap空间
Zram是一种内核支持的压缩内存技术,可将部分内存转换为压缩的Swap空间(无需额外硬盘空间)。相比传统Swap,Zram能减少硬盘I/O操作(尤其是SSD的写入损耗),同时通过压缩提高内存利用率,间接降低系统能耗。操作方法:
sudo apt update && sudo apt install zram-config;sudo systemctl enable zram-config && sudo systemctl start zram-config。/dev/zram0),无需手动配置。监控与清理Swap使用:减少不必要的交换
定期监控Swap使用情况,及时清理无用进程和缓存,能避免Swap空间过度占用导致的硬盘频繁读写。操作方法:
free -h(显示内存和Swap的总量、已用、空闲情况);sync),再清空缓存(echo 3 > /proc/sys/vm/drop_caches);htop或top工具识别占用内存高的进程,结束无用进程(如kill -9 <PID>)。其他系统级优化:间接减少Swap依赖
除上述针对Swap的优化外,还可通过以下系统设置降低整体能耗,间接减少Swap的使用频率:
powersave(低功耗模式),适合不需要高性能的场景(cpufreq-set -g powersave);tlp(优化电源计划)、powertop(监控功耗热点),进一步提升电池续航。