2核2G 和 2核4G 的差别看起来只是内存翻倍,真正决定选哪个的,是这台机器上同时要跑几样东西。个人建站常见的是一个 Web 服务加一个数据库,再加缓存或后台任务,它们会一起抢内存。核数相同的情况下,内存余量决定了并发稍高时会不会开始用 swap、拖慢响应。与其凭感觉挑档位,不如先列出程序栈和大致并发,再算一笔粗账,具体档位以购买页当前说明为准。
不同运行时对内存的基础占用差得不少。一个静态博客或轻量 Node、PHP 站点,常驻进程不多,2G 内存里还能留出余量给系统和缓存;但 Java 应用、带搜索或队列的服务,光是运行时和堆内存就会占去一大块。更关键的是数据库是否同机:MySQL 或 MariaDB 一旦和 Web 服务挤在一台机器上,就要为缓冲池、连接和临时表预留空间,2G 很容易被吃紧。程序栈里每多一个常驻组件,都该在内存账上单独记一笔,实际占用以自己的监控数据为准。
把上面的账算完,可以对照下面两条线来定:
两栏都沾边时,先按数据库是否同机这一条拍板,它通常比访问量更早触到内存瓶颈。
有个不依赖工具的估法:先看每个工作进程常驻多少内存,再乘上你打算允许的并发进程数,末了给系统和数据库各留一块。以 PHP-FPM 为例,若单进程常驻几十 MB,开十来个进程就是几百 MB,再加上数据库缓冲池和系统开销,2G 会明显吃紧,4G 则从容一些。把这个乘法套到你自己的栈上,比看别人怎么写都准。并发量拿不准时,先用监控记一周峰值,再据实决定要不要往上调,比按想象中的峰值买大更稳妥。配置档位以购买页当前说明为准。
能缓解突发的紧张,但 swap 落在磁盘上,速度远低于内存,频繁换页时响应会明显变慢。它更适合当缓冲,而不是长期方案。
对多数个人站点,CPU 往往在内存之后才吃紧,因为动态页面和数据库查询更常卡在 IO 与内存上。但跑了转码、压缩、构建这类计算任务,就要按 CPU 使用率的持续曲线另算。
更省事的做法是首购前把场景、程序栈和并发量定清楚,一次选到够用的档位。配置变更通常涉及停机或重建观察,反复调整花的是自己的时间。
链接为普通文字链,无自动跳转、无脚本写入,也不会改变你的浏览器设置。