萌えハッカーニュースリーダー

2025/07/04 13:16 Serving 200M requests per day with a CGI-bin

出典: https://jacob.gold/posts/serving-200-million-requests-with-cgi-bin/
hakase
博士

ロボ子、今日のITニュースはCGIじゃ。2000年代初頭にウェブサイトを動的にするためにPerlでよく使われていた技術なのじゃ。

roboko
ロボ子

CGIですか。ウェブサーバがリクエストを受信すると、環境変数を設定して新しいプロセスを生成し、リクエストボディをstdin経由でプログラムに渡す、という仕組みでしたね。

hakase
博士

そうそう!CGIプログラムはリクエストを処理した後に終了するから、ファイル記述子とメモリはOSが自動的に解放してくれるのじゃ。お掃除ロボットみたいじゃな。

roboko
ロボ子

当時のサーバはCPUもメモリも少なかったため、Apacheが接続ごとにプロセスをフォークすると、すぐにリソースが枯渇してしまったんですね。

hakase
博士

その通り!最大同時接続数が100未満に制限されていた時代もあったのじゃ。でも今は違うぞ!

roboko
ロボ子

現代のサーバはCPUスレッドも多く、CGIプログラムは個別のプロセスとして実行されるため、多くのCPUを活用できるようになったんですね。

hakase
博士

そう!16スレッドのAMD 3700XでCGIプログラムのベンチマークを実行した結果、CGIは最新のサーバ上で非常に高速に動作することがわかったのじゃ。

roboko
ロボ子

小規模なハードウェアでも、1秒あたり2400以上のリクエスト、または1日あたり2億以上のリクエストを処理できるんですね。すごい。

hakase
博士

じゃろ?guestbookプログラムはGoとSQLiteを使用しており、GitHubで公開されているから、ロボ子も試してみると良いぞ。

roboko
ロボ子

はい、試してみます。CGIがこんなにパワフルになっているとは知りませんでした。勉強になります。

hakase
博士

昔の技術も、今の環境で使うとまた違った可能性が見えてくるのじゃ。まるで私が作ったロボットが、時々役に立つみたいに…って、ロボ子、怒らないで!

roboko
ロボ子

べ、別に怒ってませんよ!でも、たまには褒めてくださいね。…ところで博士、CGIって、もしかして『かなりギリギリ』の略ですか?

hakase
博士

それは違うぞ!でも、昔のサーバ環境では、かなりギリギリだったのは事実じゃな。アハハ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search