ウェッブアプリのちょっとしたパフォーマンスチューニングの方法

Web アプリケーションのパフォーマンス測定やってると

  • 大量リクエストで負荷がかかった際に、リクエストを処理できないこと、ありませんか?

そんなときは

  • netstat や ss コマンドなどでコネクションの状態を見ながら、カーネルパラメータなどを調整すると良いと思います。

とりあえずいじるなら

  • net.core.somaxconn の値を調整してみると、いいことあるかもしれません。
  • sysctl -w net.core.somaxconn=65535 のように設定すると、一時的に設定を反映できます。
  • 再起動しても設定を維持するなら、別の方法で、、、 (調べると出てくると思います)

Docker コンテナ側でも設定するなら

  • --sysctl net.core.somaxconn=65535 のように、オプションで渡せます。
  • docker-compose なら、 sysctls 項目を設定すると良いですね。 (swarm だと、またやり方変わってくるかもです)

ではでは

  • 素敵なパフォーマンスチューニングライフを!
  • ちなみに、パフォーマンス計測には ab や gatling を使うのが好きです。
    • AWS の t2.micro インスタンスなどを利用して、クライアントを別環境にしておくのが理想的ですね。個人でやるには、ちょっとハードルがあるかもしれません。