- systemctlの永続化
- ログ消す
- アプリケーションログ
- nginxログ
- mysqlログ
- 各インスタンスの疎通確認
- 各テーブルがどれくらい変更されるかのモニタリング
- 全く変化しない → 最初にメモリに全部上げる
- 少し変化する → 寿命を設けてメモリに上げる
- めっちゃ変化する→ メモリキャッシュしない
- 一応キャッシュ機構作ってみたもののmutableなオブジェクトを渡したときの動作が保証されてなさそう
- memcached, redisの秘伝のタレ作成
- ベンチ中にブランチ切り替えたりサービス再起動したりと色々問題があった
- ベンチ中は操作不可能なdeployスクリプトを作る
$ deploy branch_name
的な - 各々が
$ deploy asuka-implement-hoge
やったあとに、MR作成してmainにマージ、マージコミットのメッセージにスコアの変化を記録する
- topコマンドでnginx, mysql, appどれが影響しているのか把握する
- topコマンドは各SQLクエリやappのどの関数が重いかを詳らかにはできないが、負荷分散の指標として役に立つと思う
lscpu | grep CPU
- コア数に基づいて最適なnginxへのコア数割当が決められる
events {
worker_processes auto;
worker_connections 1024;
}
多分ここらへんの設定は負荷分散しない場合はコア数に余裕を持って、負荷分散する場合はマックスまで引き上げるべき
- mysql, nginxの最適な設定も考えねば、connection poolとか、、、