小内存vps优化占用教程
这篇文章讲讲小内存VPS占用优化方法,适用于512M或以下的VPS,主要讲的是一些内核或者系统方面的优化方法。另,如果你在使用服务器面板,比如宝塔等,这篇文章还是别看了!
选择系统
首先是选择系统,目前俺认为广泛可用且最省内存的系统,还是Debian,因为Debian可以选择内存占用最小的Cloud内核,Cloud内核就是为KVM定制的,去除了云环境不需要的,像蓝牙、声音支持等无用模块。另外Cloud内核不适用于VMware虚拟化或桌面系统,下面就讲讲Debian10更换Cloud内核方法:
首先备份sources.list文件:
1 | cp /etc/apt/sources.list /etc/apt/sources.list.bak |
修改sources.list文件:
1 | vi /etc/apt/sources.list |
添加下面内容:
1 | deb http://deb.debian.org/debian buster-backports main |
然后更新一下系统:
1 | apt update |
搜索内核:
1 | apt search linux-image | grep cloud-amd64` 或者 `apt search linux-image | grep buster-backports |
会输出类似下面内容:
1 | linux-image-4.19.0-14-cloud-amd64/stable 4.19.171-2 amd64 |
建议选择stable版本 linux-image-4.19.0-16-cloud-amd64
安装,注意带有cloud字样的image文件:
1 | apt install linux-image-4.19.0-16-cloud-amd64 |
重启:/sbin/reboot
重启后即更换了新内核,另小内存VPS内核不必求新,稳定就好。
PS:旧内核删不删是无所谓的,留着可以方便以后随意切换。
增加或删除swap分区
既然内存太小,自然是要设置交换分区了,下面是增加或删除swap分区方法:
首先,检查分区: free -h
1 | total used free shared buff/cache available |
如果出现上面Swap字样说明你的VPS是存在swap分区的,这个时候想调整分区大小,俺们就要先删除原有分区,再创建。
找到swapfile文件:
1 | find / -name swapfile |
cd到存放swapfile的文件夹
停用swap空间:
1 | swapoff swapfile |
删除swapfile文件:
1 | rm swapfile |
上面完事后就等于删除swap分区了,接下来创建swap分区。
1 | cd / && mkdir swap && cd swap |
创建swap文件,后面的1024是分区大小1g,自己可以根据需要调整。
1 | dd if=/dev/zero of=swapfile bs=1M count=1024 |
将文件标记为交换空间:
1 | mkswap swapfile |
启用该交换文件:
1 | swapon swapfile |
另建议给swapfile文件权限为600,也就是root权限,以免出现安全隐患:
1 | chmod 600 swapfile |
再次检查一下swap分区是否可用:
1 | swapon --show |
最后,设置swap分区为开机自动挂载:
1 | echo "/swap/swapfile none swap sw 0 0" >> /etc/fstab |
建议swap分区大小和RAM大小保持差不多即可。
设置 sysctl.conf vm选项
1 | vi /etc/sysctl.conf |
保存后:sysctl -p
撤销安全补丁和内核模块加载
撤销安全补丁,比如 Intel CPU 的一些安全漏洞,提升CPU性能,降低内存占用,方法如下:
1 | vi /etc/default/grub |
注意是修改 GRUB_CMDLINE_LINUX_DEFAULT=
后面部分内容。
内核5.2或以上修改下面内容:
1 | bashGRUB_CMDLINE_LINUX_DEFAULT="quiet splash mitigations=off" |
内核5.2以下修改成下面内容:
1 | GRUB_CMDLINE_LINUX_DEFAULT="quiet splash noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off tsx=on tsx_async_abort=off mitigations=off" |
最后:
1 | update-grub |
去掉一些没必要内核模块加载 (xfs 等),方法如下:
1 | chmod -x /etc/grub.d/30_os-prober |
上面主要讲的是一些内核或者系统方面的优化方法,至于第三方软件,比如Nginx、PHP、数据库等优化就不多讲了。