性能详解
GPT-Load 采用“代理路径优先”的高性能设计哲学, 一切优化都为保障核心代理请求的极致性能和稳定性。
核心性能特性
零 I/O 操作
代理请求全内存处理
零拷贝流传输
直接流式数据转发
无锁并发
原子操作高效处理
极低资源占用
单核 128MB 内存运行
极致的代理请求性能
为了实现最低延迟和最高并发,代理请求的核心路径被设计为“零 I/O 操作”。
全内存服务
所有路由和决策所需的数据,包括分组配置、密钥信息等,都在服务启动和配置变更时预加载到内存中。 代理请求期间无需任何数据库或磁盘访问。
零拷贝流式传输 (Zero-Copy Streaming)
实时透传机制
GPT-Load 采用实时透传模式,直接将上游服务的数据流 (io.Reader
) 对接到客户端响应 (io.Writer
),不进行任何中间缓冲、按行读取或内容解析。
与传统流式处理的区别
❌ 传统方式
按行读取 → 解析处理 → 缓冲输出
✅ GPT-Load 方式
上游数据流 → 直接透传 → 客户端
核心优势
不会因按行读取而破坏原始数据包结构
天然支持 SSE、JSON 流、二进制等所有数据格式
理论上可处理任意大小的上游响应数据
数据到达即转发,无缓冲等待时间
不缓存数据,内存使用量与响应大小无关
响应速度无限贴近上游服务原生表现
异步日志
请求日志的记录采用延迟异步写入策略,完全与请求-响应生命周期解耦, 确保日志操作不会对实时代理性能产生任何干扰。
动态资源与并发管理
HTTP 客户端高效复用
为每个分组维护独立的、可复用底层连接的 HTTP 客户端实例
当分组配置(如超时)变更时,系统会实时动态地生成新客户端实例,确保配置即时生效
原子操作与无锁设计
在密钥轮询计数等高频并发操作中,使用 sync/atomic
包进行无锁化编程,避免了互斥锁(Mutex)带来的性能开销。
异步任务与可扩展性
海量密钥的异步管理
机制
添加和验证密钥等操作均作为异步后台任务执行。
优势
使得管理操作不会阻塞服务,理论上允许系统管理百万级别的海量密钥。
集群支持与配置同步
架构
支持多节点主从(Master-Slave)架构进行水平扩展。
同步
主节点的配置变更通过 Redis Pub/Sub 推送通知
从节点通过内置的配置同步器监听并拉取更新,实现集群间配置的最终一致性
轻量级与资源效率
极低的资源占用
得益于 Go 语言高效的内存管理以及上述性能优化(如零拷贝、连接池复用), GPT-Load 作为一个编译后的二进制文件运行,无额外运行时依赖,实现了极低的资源占用。
适用性广
在典型的单机部署场景下,仅需较低的 CPU 和内存即可保障服务的流畅运行。