SEO 百科
CPU
本页目录
CPU
CPU 是服务器上执行指令的那颗处理器,看它有两个数字:核心数决定能同时办多少件事,主频决定一颗核心每秒走多少步。选几个核、多高主频,要看站点被什么占住,是同时涌进来的请求太多,还是单个请求自己要算很久。选错方向,钱花出去,响应时间却没降下来。
核数和主频各管什么
核心数管并发。一颗核一次只能处理一条指令流,多几颗核,就能同时接住几路请求。访问者在同一时刻点进来,核数不够,后来的请求就得排队。
主频管单件事的快慢。同样一段计算,主频高的核算完它用的时间更短,单个响应里那段程序执行得更利索。主频帮不了排队,它只让每一颗核干活更快。
对多数网站,这两个数字不是越大越好。页面本身很轻、又加了缓存的站,CPU 长时间闲着;把预算堆到核心数和主频上,换不来看得见的提速。
网站负载通常落在哪
一次网页请求,CPU 真正在算的时间往往很短,更多时间在等数据库返回、等磁盘读写、等网络把数据送回来。这种负载叫 I/O 密集,意思是程序大部分在等,而不是在算。等的时候那颗核是空的,多配几颗核,能同时接住的请求就多一些。
只有当请求本身要算很久,主频才顶得上。比如给图片打水印、把一段文本做复杂渲染、跑一次实时排序,这类计算在单颗核上占满整段时间,主频越高这段计算越快。搜索、转码这种站也属于这一类。
扩容方向的判断
判断加哪个,先看机器被什么占住。并发请求多、CPU 总利用率长期接近饱和,加核心数或者多加机器。单个请求处理时间长、但同一时刻没多少人访问,提主频更对症。
下面这张表按站点类型给个大致方向,具体还得结合自己机器的监控数据看。
| 站点类型 | CPU 常耗在哪 | 优先动什么 |
|---|---|---|
| 静态小站、开了缓存 | 几乎不占 CPU | 先把带宽和缓存做对 |
| 动态内容站、并发高 | 同时请求多、核不够 | 加核心数或加机器 |
| 单个请求算得久 | 一次处理占满一颗核 | 提主频,或把重活挪进队列 |
| 带搜索、图像处理 | 计算量本身就大 | 主频和核数一起往上加 |
配置估算
别照着名字下单,先看实际用量。上线前估不准,就先按偏低配开,跑一段时间后看 CPU 使用率和平均负载这两个数,再决定加不加。多数云控制台都给这两个曲线,稳态时利用率一直很低,说明这一档核数够;反复顶到高位,才需要往上调。
估的时候要把 CPU 和内存合起来判断。内存不够时,系统会终止进程来保住自己,站点在这段重启里返回 5xx,CPU 再快也接不到请求。带宽跑满时,请求发不出去,CPU 反而是闲的。所以单看 CPU 一项容易估偏。拿不准就先做缓存、换更快的盘,往往比直接加核省钱。
与抓取和收录的关系
CPU 顶不住,最先掉的是响应时间,而响应时间直接牵动抓取。Google 把抓取容量的上限和服务器状态绑在一起,网站响应变慢、返回 5xx 或 429 时,“抓取容量上限会降低,Google 的抓取量也会减少”[2]。这里的响应变慢,一项就是延迟时间增加、第一字节时间变长,正对应 CPU 排队的后果。
抓取这一步还要求机器可达。Yandex 提出,站点要先做到“机器人能够访问页面”,它还提供了查看服务器响应的工具[1]。百度把一次收录拆成从抓取到展现三步,头一步就是抓取网页[3]。核数配得合适、请求不堆在队列里,抓取这一路才顺。
常见误用
一个误用是以为核数越多站点越快。慢在数据库或程序本身时,加核不解决,请求该等还得等。
另一个误用是给常年清闲的小站配高主频。多数流量走缓存,CPU 大部分时间空着,这笔钱花在用不上的地方。
还有一个误用是只看标称核数,不看是不是独享。共享算力的方案里,同宿主机的邻居忙起来会分走处理能力,同样标 2 核,实际能拿到的算力差一截。
附录
参见
参考资料
官方(境外)
- 《How can I add a site to search?》,Yandex 网站站长文档。
- 《优化抓取预算》,Google 搜索中心。
官方(国内)
- 《百度搜索的工作原理》,百度搜索资源平台,2023-12-21 更新。
第三方
无。
外部链接
无。