株式会社TECH LUCKという会社で代表兼エンジニアをしている齊藤です。
DXプロジェクト、開発プロジェクト、Rails開発などでお困りごとがありましたら弊社HPからご相談をいただけますと幸いです。
以下のような問題に対応することが可能です。
- プロジェクトでRailsエンジニアが足りなくて困っている
- Railsのバージョンアップをしたいがノウハウ・リソースが足りなくて困っている
- オフショア開発をしているが、要件の齟齬やコード品質が悪いので改善したい
また、Railsエンジニアも募集しておりますので、興味がありましたら弊社HPからご連絡いただけますと幸いです。
前提
EC2で動いているRailsアプリケーションで、多くの同時接続を捌けるようにするためにチューニングをしました。
その際にどこの設定を考慮するのかや参考になった記事をまとめました。
前提として以下の記事を読めば、詳細などを知ることができます。
考慮することの大枠は以下の5つ
- Linux(EC2)の設定
- バックログの最大値の設定
- ファイルディスクリプタの最大値の設定
- vCPUの数
- メモリ容量(RAM)
- Nginxの設定
- ワーカー数
- スレッド数
- リミット数
- Pumaの設定
- ワーカー数
- スレッド数
- Railsの設定
- DBのコネクションプール数の設定
- MySQLの設定
- MaxConnection数
参考記事
同じような構成でのチューニング
Nginxのアーキテクチャ
Nginxの設定値
backlogの設定値
## ファイルディスクリプタについて
https://qiita.com/toshihirock/items/78286fccf07dbe6df38f