目 录CONTENT

文章目录

增加服务器的Swap分区

前言

最近在服务器上部署了一堆奇奇怪怪的项目,2G的内存已经是捉襟见肘,前几天查看日志的时候发现有几个容器因为内存泄露而强制重启了。正当我考虑要不要再买个服务器把一些项目迁移过去时,突然想到以前在windows上折腾过的虚拟内存。按理来说,linux下也应该有类似的机制,经过一番查找,果然发现了这个叫swap分区的玩意。所谓的swap分区,是Linux系统中实现虚拟内存管理的核心机制,当物理内存(RAM)资源紧张时,操作系统会通过内存回收算法(如LRU算法),将内存中暂时不活跃的内存页(memory pages)换出(swap out)至磁盘存储空间,从而释放物理内存供高优先级进程使用。这些被换出的内存页仍保留在Swap分区中,当原进程需要重新访问这些数据时,操作系统会通过按需换页机制(demand paging)将其换入(swap in)内存,实现内存资源的动态调度。这种机制不仅能有效防止内存耗尽导致的系统崩溃,还可为休眠(hibernation)功能提供硬件支持,是操作系统内存管理策略的重要组成部分。

步骤

dd if=/dev/zero of=/tmp/swap bs=1MB count=2048     # 在 /tmp/swap 位置创建一个大小为 3GB 的文件,该文件被零字节填充。
sudo mkswap /tmp/swap    # 将文件格式化为交换空间
sudo swapon /tmp/swap    # 启用这个交换空间
vi /etc/fstab /tmp/swap swap swap defaults 0 0   # 编辑fstab,使其一直存在
mount -a   # 重新挂载

效果

虽然在部分情况下会导致系统的性能下降,但总比直接挂了好。

0

评论区