一开始,我并不觉得问题会出在“博客”上。

访问量不高,页面也不复杂,只是一个 Halo 博客,跑在一台 2核2g的服务器上。
直到某一天,我发现:

  • 页面开始偶尔卡顿

  • CPU 时不时冲到 100%

  • 内存几乎没有“available”

我第一反应是:
是不是内存泄漏了?


真相一:不是泄漏,是 JVM 的“自由”

当我查看 Java 进程时,才意识到一个致命事实:

JVM 根本没有被限制内存。

在小服务器上,这意味着:
它会用到你崩溃为止。


真相二:插件是“温柔的杀手”

搜索插件、评论互动插件、AI 建站插件……
它们都不“重”,但加在一起刚刚好把 JVM 推过悬崖


真相三:swap 不会救你,除非你告诉它怎么救

swap 存在,却几乎不参与调度。
在内存临界点,系统只能选择“抖”。


最后的结果

  • JVM 堆被限制在 256MB

  • MySQL buffer 降到 256MB

  • 插件只保留最核心的 3 个

服务器突然“安静”了。


这次我学到的事

小服务器不是不能跑 Java,
是不能跑“默认配置的 Java”。