Linux内存不足解决方案

文摘   2024-11-27 12:38   陕西  

阿里云的2c2g服务器开一个java后端,一个nginx,一个mysql,一个redis,运行不到半天就挂彩了,原来是内存爆表了…试着创建个swap分区缓解一下,但是这个会降低服务器性能,所以不是在必要条件下还是不要使用,直接加预算买更好的服务器。

一键脚本

sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 && \sudo chmod 600 /swapfile && \sudo mkswap /swapfile && \sudo swapon /swapfile && \sudo echo '/swapfile none swap sw 0 0' >> /etc/fstab && \sudo echo 'vm.swappiness=10' >> /etc/sysctl.conf

创建步骤

Swap 分区的大小建议是物理内存的 1 到 2 倍。

创建分区

使用 dd 命令创建一个指定大小的交换文件。例如,要创建一个 2GB 的交换文件,可以使用以下命令:

sudo dd if=/dev/zero of=/swapfile bs=1M count=4096

/swapfile 是交换文件的路径,bs=1M 表示每次写入 1MB,count=2048 表示总共写入 2048MB,即 2GB 的交换空间。

为了安全起见,应该将交换文件的权限设置为只有 root 用户可以访问:

sudo chmod 600 /swapfile

激活分区

使用 mkswap 命令将文件格式化为交换空间:

sudo mkswap /swapfile

使用 swapon 命令激活交换文件:

sudo swapon /swapfile

为了在系统启动时自动激活交换空间,您需要在 /etc/fstab 文件中添加以下行,直接执行下面的命令:

sudo echo '/swapfile none swap sw 0 0' >> /etc/fstab

设置优先级

swappiness 参数控制系统倾向于使用交换空间的程度。值范围从 0 到 100,默认值为 60。如果您希望系统更少地使用交换空间,可以尝试降低 swappiness 参数的值。使用以下命令可以临时调整 swappiness 参数:

sudo sysctl vm.swappiness=10

要永久设置 swappiness 参数,您需要在 /etc/sysctl.conf 文件中添加或修改以下行,直接执行下面的命令:

sudo echo 'vm.swappiness=10' >> /etc/sysctl.conf

使用文本编辑器打开 /etc/sysctl.conf 文件,添加上述行,然后保存并关闭文件。

Linux内核之旅
Linux内核之旅
 最新文章