Upgrade to Pro — share decks privately, control downloads, hide ads and more …

質問箱の負荷対策

umemotoryo
October 31, 2019

 質問箱の負荷対策

umemotoryo

October 31, 2019
Tweet

More Decks by umemotoryo

Other Decks in Programming

Transcript

  1. 2 画像・図・グラフなど • 名前: 梅本稜 • 担当サービス ◦ 質問箱 •

    実装 ◦ サーバーサイド ◦ インフラ • ジラフ歴: だいたい5年 • DDos経験: 3回 自己紹介
  2. 4 アーキテクチャ図(簡易版) Infrastructure Master Cloud SQL Slave Cloud SQL Kubernetes

    cluster Application Kubernetes Engine Worker Kubernetes Engine Nginx Ingress Kubernetes Engine Infrastructure Cloud Memorystore Cloud Memorystore S3 Cloud Memorystore S3 proxyr Kubernetes Engine
  3. 8 1. LBが死んでいる a. これはGCPのワークロードからpodの状態を確認して問題なし 2. DBが詰まっている a. DBにshow processlistを実行すると60秒以上実行されているクエ

    リが多く発見される b. しかもレプリケーションが3時間近く遅延 3. Redisのメモリが溢れている a. Stackdriverで見ると溢れていない 仮説検証する
  4. 15 Pumaの場合 PumaのWorker * pool らしい(ソースコードまで追ってないです) なので Pod * PumaのWorker

    * pool が4000以下になるように database.yml設定を変更する コネクションの総数を計算する 方法を調べる
  5. 16 show processlistで表示される行数と Pod * PumaのWorker * pool の数を比較して減らす 怖かったので1つずつpoolを減らして様子をみる

    同時にPumaの処理待ちをStackdriverで監視して処理が詰まらないことを 確認しながら行なった 質問箱の場合は最終的に 7 になった(cpu 6core, memory 32GB) database.ymlの変更