服务器响应慢,蜘蛛来一次就不想来了

服务器响应 TTFB 首字节时间

服务器响应时间这东西,很多人不在乎,觉得只要页面能打开就行。但搜索引擎对速度的敏感程度,比对用户还高。

先说个数据。我观察过几个站的日志,服务器响应时间从 0.5 秒优化到 0.1 秒之后,蜘蛛的日抓取量涨了差不多一倍。为什么。因为蜘蛛一个小时能抓多少页面是有限的,你每个页面响应慢,它这一小时就抓不了几个。响应快了,同样的时间内它能抓更多,你的收录速度自然就上去了。

响应时间慢,原因通常有几个。第一,数据库查询慢,特别是一些没加索引的查询,数据量一大就慢得像蜗牛。我遇到过一个站,一个列表页要查三张表,其中一张没索引,页面上线的时候数据少看不出问题,跑了半年数据过万,那个页面响应直接到两秒开外。加了个索引,立刻降到几十毫秒。

第二,外部接口拖累。有些页面渲染的时候要调第三方接口,比如天气、汇率这种。这些接口一旦抽风,你的页面就跟着卡。稳妥的做法是给外部调用设个超时,超时就用缓存数据或者默认值,别让用户和蜘蛛干等。

第三,服务器配置。PHP 的进程数不够,并发一上来就排队。这个我之前也吃过亏,改了下进程池配置,问题解决。还有内存、磁盘 IO 这些,都得看着点。

那怎么监控。最简单的办法就是看 access log 里每个请求的耗时。有些服务器配置会把响应时间写进日志,你按耗时排个序,看看最慢的是哪些页面、哪些接口。这个排查一次能省很多事。

我现在的习惯是,每周抽一天看一遍慢请求排行。这个动作花不了十分钟,但经常能提前发现隐患。服务器这东西,你不盯着它,它就悄悄退化。

—— 来自 挖的客 - 优秀网站分类目录 的分享

🔗 推荐网站

« 返回文章列表