← 返回博客
操作教程2026年9月19日

代理分片实战:2026 抓取性能优化指南

易代理数据方案团队·公开网络数据采集研究·7 分钟阅读
how-proxy-sharding-can-enhance-performance

TL;DR:代理分片按目标域名、地区、账号或任务,将请求稳定映射到彼此隔离的代理池;每个分片独立管理并发、会话、重试、熔断和费用。先记录未分片基线,再以 5%—10% 的流量进行对照测试;只有有效结果成功率和首次成功率上升、P95 延迟与重试率下降,且单位有效结果成本没有增加,才算分片成功。

代理分片设置流程

代理分片是什么

代理分片不等于随机轮换 IP。它把流量、出口资源和故障处理划入多个隔离单元,通常包含四部分:

  • 分片键:如“目标域名+国家+账号 ID”。
  • 代理池:记录出口 IP、国家、城市、ASN、协议、容量和健康状态。
  • 路由器:根据分片键、稳定哈希和实时权重选择出口。
  • 控制器:执行限速、退避、熔断、排空和预算控制。

例如,德国站点出现 20 秒连接超时后,只暂停德国目标分片;美国站点继续使用自己的队列和连接池。如果两个站点共享 500 个连接,慢请求可能占满整个连接池;拆成两个各 250 个连接的分片后,故障就会被限制在单个池内。

这种隔离不仅缩小故障范围,也为各类性能优化提供了基础。

分片为什么能改善性能

隔离慢队列

假设站点 A 与站点 B 各有 100 个任务,正常响应时间均为 2 秒。当 A 的响应时间升至 20 秒时,共用队列可能被 A 的长连接占满;独立连接池则能让 B 保留自己的并发额度。

限制重试放大

100 个原始请求若都允许额外重试 3 次,最坏会产生 300 个附加请求。可为每个分片设置重试令牌桶,例如“每分钟重试请求不超过原始请求的 10%”,同时设置全局上限,避免多个分片同时故障时耗尽带宽。

稳定账号与出口

登录、购物车和长分页任务需要粘性会话。账号 ID、Cookie 容器、出口地区和任务检查点必须一起绑定;仅固定 IP 而不保存 Cookie,仍会造成登录状态丢失。

账号在短时间内跨国家或 ASN 切换,还可能触发重新登录、验证码或返回地区错误内容。出口故障时,应整体迁移相关状态,而不是只更换 IP。

按有效结果分配容量

出口权重不应只看 IP 数量。可以使用以下初始评分,并按业务结果持续校正:

权重 = 可用连接数 × 最近有效结果成功率 ÷ P95 延迟

“有效结果”需要通过内容校验,包括地区正确、不是验证码页且关键字段完整。返回空页面或地区错误内容的 HTTP 200 仍应记为失败。

要让这些机制生效,首先需要选择稳定且粒度适当的分片键。

如何选择分片键

通常先按目标域名隔离目标站策略,再按地区、账号或任务状态增加维度。

场景推荐分片键目的
多站点采集域名+国家隔离目标限速与地区要求
本地搜索域名+城市+批次保持位置一致
登录任务域名+账号 ID减少账号出口漂移
长分页任务域名+任务 ID保存 Cookie、游标和出口
API 调用主机名+接口组分开管理接口配额
多租户平台租户 ID+域名隔离费用与故障

不要按单个 URL 建立分片。10 万个 URL 会形成大量低利用率队列、连接池和监控标签,却没有足够流量计算稳定的健康分数。代理节点动态增减时,可使用一致性哈希或最高随机权重哈希,减少有状态任务不必要的迁移。

确定分片键后,即可按以下步骤完成容量、路由和故障策略配置。

七步部署代理分片

1. 建立基线

固定 URL 样本、并发度、请求头、解析规则、超时和测试时段,记录:

  • 有效结果成功率和首次成功率;
  • P50、P95、P99 端到端延迟;
  • 每个原始请求的平均重试次数;
  • 429、407、5xx、超时和验证码比例;
  • 队列等待时间及峰值长度;
  • 每个有效结果消耗的流量和代理费用。

静态健康检查只能证明出口可连接,不能验证登录、重定向、地区内容和数据字段是否正确。

2. 划定分片边界

从少量且容量充足的分片开始。例如,20 个目标域名与 4 个国家最多形成 80 个逻辑组合。只有某个组合持续出现积压、独立账号状态或不同限速规则时,才继续拆分。

分片键必须稳定且可重建。账号任务可使用 域名:国家:账号ID;无状态任务可使用 域名:国家:批次ID,不要加入随机数。

3. 标记代理资源

每个出口至少保存国家、城市、ASN、协议、活跃连接数、最大连接数、最近 5 分钟有效结果成功率、P95 延迟及状态。状态可分为可用、降权、排空和隔离。

EProxies 提供覆盖 195+ 个国家的 7200 万+住宅 IP,支持 HTTP(S) 与 SOCKS5,可据此建立国家、城市或 ASN 子池。备用池必须满足任务原有的地区要求;德国价格任务不能静默切换到美国出口。

4. 估算并发

初始并发可用以下近似式计算:

所需并发 ≈ 峰值请求速率 × P95 服务时间 ÷ 目标利用率

某分片每秒处理 40 个请求,P95 为 2.5 秒,目标利用率为 70%,则需要约 40 × 2.5 ÷ 0.7 ≈ 143 个并发连接。可先配置 150 个,再预留 10%—20% 的故障容量;这些比例只是容量规划起点,应通过压测调整,并非通用保证值。

5. 配置稳定路由

无状态请求可在分片内按健康权重轮换。有状态任务则使用账号 ID 或任务 ID 进行稳定映射,粘性时间只需覆盖任务周期:10 分钟的分页任务无需独占出口 24 小时。

维护节点时,先把权重降为零,停止接收新会话;待现有任务完成后再移出代理池,避免强制迁移全部账号。

6. 设置重试与熔断

错误操作
429遵循 Retry-After,降低该目标分片的入口速率
401检查目标站凭据,不靠换 IP 重试
407检查代理鉴权、白名单和账户状态
连接超时在原分片退避,再尝试同地区备用出口
5xx仅重试可安全重放的请求
验证码记为业务失败,降低出口或会话权重
地区错误隔离出口并重新验证定位

可从带随机抖动的 1、2、4 秒退避和最多 3 次尝试开始。示例熔断规则是:30 秒窗口内错误率超过 40% 时停止常规流量,半开状态下每秒只放行 1 个探测请求;阈值应按目标站的正常波动校准。

7. 灰度与回滚

先把 5%—10% 的请求送入分片组,并让分片组与未分片对照组使用相同的 URL、并发度和时间窗口。随后按 25%、50%、100% 放量,每个阶段至少覆盖一次峰值窗口。

可采用以下示例回滚条件:

  • 有效结果成功率下降超过 2 个百分点;
  • P95 延迟增加超过 20%;
  • 重试请求超过原始请求的 15%;
  • 单位有效结果成本增加超过 10%;
  • 队列等待时间超过请求超时的 50%。

这些数字是灰度保护线示例,不是行业统一标准;应根据基线波动、业务价值和错误成本收紧或放宽。部署完成后,还需要通过全局与单分片指标共同验证实际效果。

如何衡量分片成效

对照测试至少覆盖一个完整业务周期,并分别查看全局和单分片数据。建议使用以下验收表:

指标计算方式通过信号
有效结果成功率内容校验通过数 ÷ 总请求数高于对照组
首次成功率无重试成功数 ÷ 总请求数高于对照组
P95 延迟95% 请求的完成时间上界低于对照组
重试率重试请求数 ÷ 原始请求数下降且不超预算
单位有效结果成本代理与流量费用 ÷ 有效结果数不增加
队列等待执行时间-入队时间无持续积压
负载偏差最繁忙分片负载 ÷ 平均负载持续下降
会话迁移率迁移会话数 ÷ 活跃会话数正常期接近零

不要只看平均延迟。快速分片可能拉低平均值,同时热分片的 P95 和队列等待仍在恶化。也不要把成功率单独作为结论:成功率提高但流量翻倍,通常意味着重试过多、错误页面未识别或响应体下载失控。

如果这些指标没有同步改善,通常可从以下几类常见故障入手排查。

常见故障与修正

热分片

某热门域名可能占总流量的 60%,其他分片即使空闲也无法消除其积压。若“最繁忙分片负载 ÷ 平均负载”持续高于 2,可按城市、账号组或任务优先级进一步拆分,或限制入口速率。

分片过细

每个分片只有一两个并发任务时,单次失败会显著扭曲健康评分。可把连续 30 分钟峰值并发低于 5 的分片合并回上级池,只拆分持续出现队列等待的组合。

会话漂移

节点故障后,只更换 IP 而复用不完整的 Cookie 或地区设置,会破坏任务状态。支付、购物车等无法安全迁移的流程应从业务检查点恢复,不应从中间步骤继续。

监控标签失控

仪表盘应保留域名、国家和错误类型等低基数标签。账号 ID、完整 URL 和出口 IP 应写入采样日志或追踪记录,避免把每个组合永久保存为时间序列。

除技术故障外,生产环境还需统一评估计费方式、协议能力、服务可用性和合规要求。

成本、协议与运行保障

EProxies 按量住宅代理起价为 $0.25/GB,300GB 分级价格约为 $0.73/GB;ISP SOCKS5 代理起价为 $0.95/IP,不限流量方案起价为 $79/月。由于计费单位不同,比较时应统一换算为“单位有效结果成本”,并纳入重试流量、空闲固定 IP 和失败响应体。

HTTP(S) 适合记录请求级主机、状态码、延迟和响应大小;SOCKS5 更适合通用 TCP 流量或长期连接。EProxies 公布的服务正常运行时间为 98.2%,并提供 99.9% 正常运行时间 SLA;实际适用范围应以对应产品条款、统计周期和排除项为准,业务验收仍以目标站端到端结果为准。

凭据应存入密钥管理系统,禁止写入代码、镜像和日志。采集前还需确认网站条款、访问权限和适用法律;robots.txt 表达自动化访问偏好,但不等同于登录后资源或个人数据的访问授权。

进一步操作可参考:

常见问题

如何衡量代理分片是否成功?

让分片组与未分片对照组使用相同的 URL、并发度、超时和测试时段。有效结果成功率和首次成功率应上升,P95 延迟、重试率与队列等待应下降,同时单位有效结果成本不能增加。还要逐个检查热分片和会话迁移率,避免全局平均值掩盖局部故障。

设置代理分片需要哪些步骤?

先建立成功率、延迟、重试和成本基线,再选择域名、地区、账号或任务作为分片键。随后为代理标记地区、ASN、协议和容量,配置稳定路由、粘性会话、重试预算与熔断器,最后从 5%—10% 的流量开始灰度。

代理分片与 IP 轮换有什么区别?

IP 轮换只决定单次请求使用哪个出口。代理分片会先划定彼此隔离的代理池,再为每个代理池配置队列、连接额度、限速、监控、重试预算和故障处理;分片内部仍可轮换 IP。

每个分片需要多少 IP?

没有固定数量,应根据峰值请求速率、P95 服务时间、出口并发上限和粘性会话数估算。压测时移除 10%—20% 的容量,如果有效结果成功率、P95 延迟和队列等待仍然达标,才说明具备基本故障余量。

粘性会话失败后应立即更换 IP 吗?

不应无条件更换。401 应先检查目标站凭据,407 应检查代理鉴权;连接超时则应在原分片退避后尝试同地区备用出口。必须迁移时,应同时处理 Cookie、地区约束、账号状态和任务检查点。

本文由 EProxies 团队撰写,经内部质量标准核查与人工审核后发布。