交换空间是内存不足时的虚拟内存补充,能有效缓解挂载大文件系统时的内存压力。
sudo fallocate -l 2G /swapfile # 创建2GB交换文件(可根据内存大小调整,建议为物理内存的1-2倍)
sudo chmod 600 /swapfile # 设置权限(仅root可读写)
sudo mkswap /swapfile # 格式化为交换空间
sudo swapon /swapfile # 启用交换文件
/etc/fstab文件,添加以下行(重启后仍有效):/swapfile none swap sw 0 0
free -m查看Swap列,确认交换空间已启用。若挂载时涉及大量临时文件(如软件编译、缓存生成),可将/tmp目录挂载到内存中(tmpfs),减少硬盘IO对内存的占用。
/etc/fstab:tmpfs /tmp tmpfs mode=1777 0 0
sudo mount tmpfs /tmp -t tmpfs
tmpfs中的数据会在重启后丢失,确保/tmp中无重要文件。Linux系统会自动缓存文件以提高性能,但缓存过多会占用内存。可通过以下命令清理:
sudo sync && sudo echo 3 > /proc/sys/vm/drop_caches
sync:将缓存数据写入硬盘(避免数据丢失);echo 3:清理页面缓存、目录项缓存和inode缓存。sudo sync && sudo echo 1 > /proc/sys/vm/drop_caches
cron定时任务。swappiness参数控制内核使用交换空间的倾向(默认值60,范围0-100)。降低该值可让系统更倾向于使用物理内存,减少交换空间对内存的占用。
sudo sysctl vm.swappiness=10 # 推荐设置为10-30(数值越小,越少使用交换空间)
/etc/sysctl.conf文件,添加以下行:vm.swappiness=10
cat /proc/sys/vm/swappiness确认参数已修改。挂载时运行的后台进程或服务可能占用大量内存,需逐一排查:
top # 按内存占用排序(默认)
htop # 更友好的界面(需安装:sudo apt install htop)
PID、%MEM列),运行以下命令终止:sudo kill -9 <PID> # 替换<PID>为进程ID
cups打印服务、bluetooth蓝牙服务)未使用,可禁用:sudo systemctl stop <服务名> # 停止服务
sudo systemctl disable <服务名> # 禁用开机自启
错误的/etc/fstab配置可能导致重复挂载或挂载失败,进而占用内存:
mount | grep <挂载点> # 如mount | grep /mnt/usb
fstab配置:sudo mount -a
/etc/fstab删除多余条目。某些文件系统(如NTFS、FAT32)的挂载参数可能影响内存使用,可通过调整参数减少内存占用:
sudo mount -t ntfs-3g -o noatime,nodiratime,disable_journal /dev/sdXn /mnt/ntfs
noatime:不更新文件的访问时间(减少写入操作);nodiratime:不更新目录的访问时间;disable_journal:禁用日志功能(适用于不需要数据恢复的场景)。blkid命令获取正确的分区UUID,避免fstab中设备名变化导致的问题。通过以上方法,可有效降低Ubuntu挂载时的内存占用,提升系统稳定性。需根据实际情况选择合适的方法(如内存不足优先增加交换空间,临时文件多则优化/tmp挂载)。