一开始,我并不觉得问题会出在“博客”上。
访问量不高,页面也不复杂,只是一个 Halo 博客,跑在一台 2核2g的服务器上。
直到某一天,我发现:
页面开始偶尔卡顿
CPU 时不时冲到 100%
内存几乎没有“available”
我第一反应是:
是不是内存泄漏了?
真相一:不是泄漏,是 JVM 的“自由”
当我查看 Java 进程时,才意识到一个致命事实:
JVM 根本没有被限制内存。
在小服务器上,这意味着:
它会用到你崩溃为止。
真相二:插件是“温柔的杀手”
搜索插件、评论互动插件、AI 建站插件……
它们都不“重”,但加在一起刚刚好把 JVM 推过悬崖。
真相三:swap 不会救你,除非你告诉它怎么救
swap 存在,却几乎不参与调度。
在内存临界点,系统只能选择“抖”。
最后的结果
JVM 堆被限制在 256MB
MySQL buffer 降到 256MB
插件只保留最核心的 3 个
服务器突然“安静”了。
这次我学到的事
小服务器不是不能跑 Java,
是不能跑“默认配置的 Java”。