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 装冷数据。日志、备份这种很少读的东西放贵盘,白白多花钱,用低价大容量盘放更划算。
附录
参见
参考资料
官方(境外)
- 《优化抓取预算》,Google 搜索中心。
- 《Why is my site not in the index?》,Bing 网站站长文档。
官方(国内)
- 《百度搜索的工作原理》,百度搜索资源平台,2023-12-21 更新。
第三方
无。
外部链接
无。