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

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

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

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

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

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

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

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

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

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

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

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

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

それは違うぞ!でも、昔のサーバ環境では、かなりギリギリだったのは事実じゃな。アハハ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。