跳到正文

行业动态Simon Willison07:08

令人毛骨悚然的小爬虫

Creepy crawlies

若你讨厌爬虫,此更新无实际价值;但功能本身确实能消解部分恐惧。

判断

运维公共 Git 仓库和开放数据集的人,得把「给爬虫渲染页面」当成常态容量成本写进预算,而不是等它挤垮服务再靠封 IP 应急。

依据

Konstantin Ryabitsev 说,在 Linux 内核官方仓库 git.kernel.org 上,为抓取工具渲染 commit 页面所消耗的 CPU 周期,比包括 git clone 在内的所有合法访问加起来还多;5 个地理分布节点上,常驻 14 个 CPU 核心只做把 commit 渲染成 HTML 这一件事。Simon Willison 说,他从 Datasette(他自己做的开源数据发布工具,会输出大量可被爬的网页)的角度同样担心。机制在于成本落在「渲染」这一步:爬虫要的不是 Git 对象,而是网页界面,每个页面都要服务端现算,缓存命中率低,于是烧掉的不是带宽而是 CPU 时间。取舍也在这里——按 IP 封禁会误伤真实访问者,加缓存或限流要动架构,Ryabitsev 把 14 核摆出来当常态开销,等于承认目前只能硬扛。

  1. 爬虫抓取 commit 页
    非 git clone
  2. 服务端实时渲染 HTML
    缓存命中低
  3. 5 节点 14 核被占住
爬虫请求如何一步步变成服务端的渲染开销

没写清 材料没点名这些爬虫是谁、是否已有限流或缓存措施,也没给合法访问侧对应的 CPU 数字,所以 14 核究竟占总容量多少,无法替它算出来。

下一步 下一步可核对:git.kernel.org 或 Datasette 若公布限流、缓存方案,实施前后用于渲染的 CPU 核心数是否下降。

本期其他新闻

  1. 行业动态

    引用 Jakub Pachocki 的话

    Simon Willison

  2. 行业动态

    墨卡托投影 ↔ 等积地球投影

    Simon Willison

  3. 行业动态

    支持乌克兰的独立新闻业

    OpenAI

  4. 行业动态

    外星人的思维

    OpenAI

  5. 行业动态

    研究加速:OpenAI 内部视角

    OpenAI