パフォーマンス詳解
GPT-Loadは「プロキシパス優先」の高性能設計哲学を採用し、すべての最適化はコアプロキシリクエストの究極の性能と安定性を保障するためです。
コアパフォーマンス特性
ゼロI/O操作
プロキシリクエストの完全メモリ内処理
ゼロコピーストリーミング
直接ストリーミングデータ転送
ロックフリー並行処理
効率的なアトミック操作処理
極低リソース使用量
シングルコア128MBメモリで動作
究極のプロキシリクエスト性能
最低レイテンシと最高同時実行性を実現するため、プロキシリクエストのコアパスは「ゼロI/O操作」として設計されています。
完全メモリ内サービス
ルーティングと意思決定に必要なすべてのデータ(グループ設定、キー情報など)は、サービス起動と設定変更時にメモリに事前ロードされます。プロキシリクエスト中にデータベースやディスクアクセスは不要です。
ゼロコピーストリーミング
リアルタイム透過伝送メカニズム
GPT-Loadはリアルタイム透過伝送モードを採用し、上流サービスのデータストリームを中間バッファリング、行別読み取り、内容解析なしでクライアント応答に直接接続します。
従来のストリーミング処理との違い
❌ 従来の方式
行読み取り → 解析処理 → バッファ出力
✅ GPT-Load方式
上流データストリーム → 直接透過 → クライアント
コア優位性
行別読み取りによる元のデータパケット構造の破損を回避
SSE、JSONストリーム、バイナリなどすべてのデータ形式を自然にサポート
理論的に任意サイズの上流応答データを処理可能
データ到着即転送、バッファ待機時間なし
データキャッシュなし、メモリ使用量は応答サイズに無関係
応答速度が上流サービスのネイティブ性能に無限に近い
非同期ログ
リクエストログの記録は遅延非同期書き込み戦略を採用し、リクエスト-応答ライフサイクルから完全に分離され、ログ操作がリアルタイムプロキシ性能に干渉しないことを保証します。
動的リソースと並行管理
効率的なHTTPクライアント再利用
各グループに独立した、再利用可能な基盤接続を持つHTTPクライアントインスタンスを維持
グループ設定(タイムアウトなど)が変更されると、システムはリアルタイムで動的に新しいクライアントインスタンスを生成し、設定の即時有効性を保証
アトミック操作とロックフリー設計
キーポーリングカウントなどの高頻度並行操作では、sync/atomicパッケージを使用してロックフリープログラミングを行い、ミューテックスロック(Mutex)による性能オーバーヘッドを回避します。
非同期タスクとスケーラビリティ
大量キーの非同期管理
メカニズム
キーの追加と検証などの操作はすべて非同期バックグラウンドタスクとして実行されます。
優位性
管理操作がサービスをブロックせず、理論的にシステムが数百万レベルの大量キーを管理することを可能にします。
クラスターサポートと設定同期
アーキテクチャ
水平スケーリングのためのマルチノードMaster-Slaveアーキテクチャをサポート。
同期
マスターノードの設定変更はRedis Pub/Sub通知でプッシュ
スレーブノードは内蔵の設定同期器を通じて更新を監視・取得し、クラスター間設定の最終一貫性を実現
軽量とリソース効率
極低リソース使用量
Go言語の効率的なメモリ管理と上記の性能最適化(ゼロコピー、接続プール再利用など)により、GPT-Loadはコンパイル済みバイナリファイルとして実行され、追加のランタイム依存関係なしで極低リソース使用量を実現します。
広い適用性
典型的なシングルマシンデプロイメントシナリオでは、低いCPUとメモリのみでサービスのスムーズな動作を保障できます。