华为云 Flexus L 实例内存升级后的 Linux 内核参数与 Swap 调优指南
一、背景与场景
当我们将云服务器从 2 核 1 GiB 升级至 2 核 2 GiB 规格后,物理可用内存翻倍,系统并发承载能力显著提升。为了充分发挥 2 GiB 内存的性能优势,同时避免高负载下不必要的磁盘 Swap 抖动,我们需要对 Debian / Ubuntu 系统的内核虚拟内存参数、文件描述符限制以及 Nginx / Node.js 工作进程数进行针对性调优。
二、调整 vm.swappiness 降低磁盘换页频率
在 1 GiB 内存环境下,系统往往需要较高的 vm.swappiness(默认 60)来防止突发 OOM。但在升级至 2 GiB 后,过早将数据换出到磁盘反而会增加 I/O 延迟。建议将其调低至 15:
sudo sysctl -w vm.swappiness=15
sudo sysctl -w vm.vfs_cache_pressure=50
其中 vm.vfs_cache_pressure=50 可以让内核更倾向于保留目录项(dentries)和索引节点(inodes)缓存,提升静态文件服务与高频小文件读写的响应速度。
三、优化 systemd 服务内存水位保护
在使用 systemd 托管核心业务进程(如 Web API 或反向代理)时,可以通过 MemoryHigh 与 MemoryMax 设置弹性水位线,防止单一异常进程耗尽整机内存:
[Service]
MemoryHigh=1200M
MemoryMax=1500M
Restart=on-failure
RestartSec=3s
当服务内存占用超过 1200M 时,内核会对其进行平缓的内存回收节流,而不会立即触发 OOM Killer 强杀进程。
四、总结
完成规格升级后,及时通过 free -h 与 vmstat 1 5 观察 si/so(Swap 换入换出)指标。当日常峰值下 si/so 稳定保持为 0 且 buff/cache 维持在 400 MiB 以上时,说明 2 GiB 内存已处于最佳工作状态。
- 点赞
- 收藏
- 关注作者
评论(0)