[Golang] gojiでも接続数を制限してみる

お世話になっております。
しゃまとんです。

go言語の軽量フレームワークであるgojiを触っておりまして、ふと大量のリクエストが来た時ってプロセス生成ってどうなっているのだろう・・と思い確認してみました。

とりあえずgojiをgo getして最低限動作する状態にします。

起動して、プロセス数を確認してみます。確認としてabコマンドを利用しました。

同時リクエスト数を100として実行してみると、100を超えていてフルでプロセスが生成されているようです。

これだと状況によってはサーバがダウンしてしまいそうです。どうにかして接続制限数を指定できないかなと思っていたら、すでにパッケージがありました。

GoDoc – netutil

netutil.LimitListenerを利用してlistenerを作成し、設定すれば良さそうです。
そこで下記のようにコードを変更しました。最大接続数を15にしてみます。

これを実行して再度abを実行してみます。

gojiでも接続数を制限することができました。フレームワークによって同じようにサクッとlistenerを設定できないものもあるっぽい・・ですかね。

以上です。

■ 参考
Golangで作ったhttpdの接続数を制限してみよう
golang のサーバで帯域制限したい。

Qiita – Ab(Apache Bench)を使用した負荷テストのやり方

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です