SEO 百科

硬盘与 SSD

本页目录

硬盘与 SSD

硬盘与 SSD 是服务器上的存储部件,负责长期存放网站代码、数据库文件和用户上传的内容。内存一断电就清空,硬盘把这些留住,机器重启之后还在。SSD 是硬盘里用闪存芯片、没有机械转盘的那一类,读写比老式机械盘快很多。对网站来说,盘的快慢决定查一次数据要等多久,这条时间最后会算到页面响应里。

硬盘管的是持久存储

请求进来,程序要读代码、查数据库、取图片,这些都落在盘上。内存管“正在跑的”,盘管“存着的”。数据量大、要留得住的东西放盘,跑得快的东西放内存,两者配合,一次查询才既留得住又不慢。

盘的速度影响的不只是大小文件。一次数据库查询,哪怕只要几条记录,也要等盘把数据块读上来。读一次几十毫秒和读一次零点几毫秒,单看差别小,一个页面背后有几十次这样的读,累起来就把响应时间拉开。

HDD 与 SSD 的差别

机械硬盘 HDD 依靠转动的磁盘和移动磁头找数据,读到哪取决于磁头先跑到哪个位置。找零碎小块时,磁头来回移动,时间都花在寻道上。固态硬盘 SSD 用闪存芯片,没有机械动作,随机找一块数据几乎不用等。

差别在随机读写上最明显。数据库的读和写大多是零碎小块,正踩在 HDD 的短板上,换成 SSD,这类操作的等待时间能降一个量级。差别在小文件、动态查询密集的站上最容易被感知。看片、按顺序搬大文件时,两者的差距反而没那么悬殊。

三个要看的指标

挑盘时看三个量,各对应一类负载:

指标 衡量什么 哪类站点敏感
IOPS 每秒能读写多少次零碎小块 数据库、动态页面
顺序吞吐 每秒能连续搬运多少数据 大文件下载、音视频
单次时延 一次读写要等多久 每次都要读盘的请求

多数内容型网站的敏感项是 IOPS 和时延,页面一出就要查库、取文件,看的就是快速读小块的能力。做下载站、放视频源的,才更看顺序吞吐。

云盘与本地盘

云上的盘分两类。本地盘挂在物理机上,读写快、时延低,但数据只存在这一台机器,机器坏了这份数据就悬,属于单点。云盘走网络挂到实例上,背后做了多副本,一台物理机出问题数据还在,可靠性高,代价是时延比本地盘大一些。

放什么盘,看这份数据丢了能不能重来。临时缓存、能重新生成的东西,用本地盘图快;要长期保住的业务数据,放云盘或用快照备份。两种常常搭配着上,热数据本地盘、持久数据云盘,各取所长。

数据的分层放置

不是所有数据都值得放最快的盘。按访问频率分层,能同时保住速度和成本:

数据库、程序代码:SSD 或云盘,优先 IOPS 和时延
图片、附件等静态资源:大容量盘或对象存储,再配内容分发网络把文件推到靠近用户的节点
日志、历史冷数据、备份:低价大容量盘,只保证留得住

这里对象存储指按网址存取、容量几乎不设上限的一类云存储,适合放静态文件;内容分发网络是把静态内容缓存到多地节点、让用户就近取的一套系统。这两样把冷数据和静态资源从服务器盘上搬走,主机的盘只留最该快的部分。

与抓取和收录的关系

盘慢,慢在每一次读盘的等待上,这些等待堆起来就是页面响应时间变长。Google 把抓取容量和响应挂钩,网站响应变慢、返回 5xx 或 429 时,“抓取容量上限会降低,Google 的抓取量也会减少”[1]。这里的响应变慢,包括第一字节时间被拉长,而第一字节时间常常被等待数据库读出数据拖长。

百度把一次收录拆成从抓取到展现三步,头一步就是抓取网页[3],抓取要求机器及时给回内容。Bing 也提醒,无法被持续抓取就可能不再被收录[2]。盘选得对、数据分层放好,查询不排队,抓取和用户请求才都不堵在读盘这一步。

常见误用

一个误用是只比容量、不看类型。同样是 100 G,机械盘和 SSD 在数据库负载下体验差很多,光看大小选不到对症的盘。

另一个误用是把所有数据都堆在本地盘上。本地盘快,但机器一坏数据就悬,业务数据不做副本或备份,等于把恢复的可能赌在一台机器上。

还有一个误用是拿 SSD 装冷数据。日志、备份这种很少读的东西放贵盘,白白多花钱,用低价大容量盘放更划算。

附录

参见

参考资料

官方(境外)

  1. 《优化抓取预算》,Google 搜索中心。
  2. 《Why is my site not in the index?》,Bing 网站站长文档。

官方(国内)

  1. 《百度搜索的工作原理》,百度搜索资源平台,2023-12-21 更新。

第三方

无。

外部链接

无。