许多新手,包括之前的我,买VPS时总有一个疑问:CPU和内存哪个重要?哪个对系统的性能影响更大?
内存比CPU重要
永远不会错的答案是:分用途和场景。然而根据本人多年的测试和实践,得出的答案是:绝大部分情况下内存比较重要,尽量购买内存大/内存主频高的VPS。
得出这样一个结论,有以下依据支持:
- 本人之前跑科学计算程序,同样的编译参数,2.2G CPU、1600MHz DDR3内存的Mac笔记本竟然比3.5G CPU、1333MHz DDR3内存的服务器运行更快。该程序不涉及到硬盘读写,只用到CPU和内存,(大概率)说明快的内存可能比高主频的CPU更重要(程序为memory-bounded型);
- 本人见过很多个人或小企业建网站,上来就买4核8G的服务器。然而大半年过去了,网站的日ip仅有寥寥几十不到百,白白浪费钱;本人也见过1核1G内存搭配swap的VPS,配置好缓存后,稳稳承载日ip上万的网站;查看系统状态,除了内存紧张,cpu大多时间都比较空闲;
- cpu性能不够,最多只是慢;内存(加swap)不够,那可是会让服务崩盘的。内存不够时,OOM killer大概率就先把数据库、Redis等重要服务杀死,然后服务就GG了。前几天很火的新闻:Redis 官网昨日宕机,错误提示为无法连接 Redis,就说明内存有多重要;
- 即使是很多密集计算型的场合,内存过小也会严重限制cpu发挥,从而影响整体性能。
总结起来就是:绝大部分场景,内存才是限制系统性能的主要因素,而cpu一般都是性能过剩。
因此,用来托管网站、后台程序的VPS,个人推荐cpu内存比至少是1:1,即1核1G,2核2G等;1:2是比较合适的,即1核2G,特殊情况可以考虑1:4或者1:8的VPS。
CPU比内存更重要的场景
也有一些场景,CPU比内存更重要,需要配置性能强劲的CPU。本人能想到的场景有:
- API网关、防火墙、路由器等流量入口的服务器,要对流量做密集计算、校验、转发,CPU不强那肯定是不行的;
- 只用做流量转发、网络代理的服务器,其实和前一条类似,CPU必须要强,内存够用就行,至于硬盘,基本上用不到;
- 密码爆破、挖坑等算力比拼的场景,CPU不给力那就没得玩了。
如果你出于这些需求买服务器,优先考虑CPU吧。例如很多 NAT VPS,2核cpu配258m/384m内存,但做中转已经完全够用了。
总结
分场景买合适配置的VPS,这句话总是不会错。除了上面说的,还有不少特殊场景要单独考虑。例如对于下载服务器,大带宽VPS 就比内存和CPU更重要;而存储型服务器,硬盘容量就应该优先考虑。
至于本人,买VPS一般是做网站、应用程序后端等用途,考虑因素如下:内存大小、硬盘速度、带宽/流量,最后才是CPU。大内存的VPS,可以做搭建网站、内网穿透、Gitlab托管 等多种用途,同时花费更低。
参考
1. What makes a computer fast and powerful?
2. 一些VPS商家整理
本文最后修改日期:2020年3月28日