Fly.Board - Cで作られた高性能HTTP/3ブログエンジン
(oborona.zip)Springの複雑さとWordPressの重さに疲れた開発者が、C11/C23で自ら実装したブログエンジン Fly.Board です。HTTP/3(QUIC) over TLS 1.3 環境で、単一バイナリとして C10k をさばける性能を確認したため共有します。
主な特徴
- Minimalist Stack: 独自フレームワーク(CWIST)と単一バイナリ構成
- Pure SSR(Server-Side Rendering): クライアント側でのレンダリング遅延を最小化
- LibTTAK: Cの速度を維持しながら、非同期処理とメモリ安全性を保証するカスタムメモリ管理ツール
- High Performance: アイドル状態で20MB、10,000同時接続時でもRSS 369MB程度で低遅延運用が可能
- Modern Protocol: カスタムCスタックベースのHTTP/3(QUIC)およびTLS 1.3をサポート
C10kベンチマーク結果 (/usr/bin/time -v 測定)
- 同時接続: 10,000件 (24分46秒維持)
- メモリ使用量: 最大RSS 約369 MB (接続あたり約37KB)
- I/O効率: Major page faults 0 (ディスクI/Oボトルネックなし)
- データ安定性: SIGINT受信時にNukeDBを通じて89,208件のFS outputとしてデータを安全に保存
既存スタックとの比較
- WordPress: PHP-FPM/MySQLベースでリソース消費が重く、多段キャッシュが必須
- Pure SSR(Server-Side Rendering): 低スペック端末でのレンダリング遅延を最小化
- Spring Boot: JVMヒープおよびDIコンテナによる高い初期複雑性とメモリ使用量
- Fly.Board: 別途キャッシュレイヤーなしでも、1GB未満のVPSで余裕を持ってC10k処理が可能
惜しい点と今後の課題
- System timeがUser timeより高い現象について、Userspace処理効率の改善が必要
- 読み取り中心のベンチマークに加え、SQLiteベースのデータ層における書き込み負荷(コメント/投稿の同時作成)も検証予定
リンク
- GitHub: https://github.com/gg582/fly.board
技術的完成度と実用性のバランスを考えながら作りました。低スペックVPSで個人ブログを運用したい開発者にとって、良い代替案になれば幸いです。フィードバック歓迎です!
まだコメントはありません。