狠狠撸

狠狠撸Share a Scribd company logo
DSAS 周 り の お 話
         Ryosuke MIURA



Copyright ? KLab Inc. All rights reserved.   0
目次

           顿厂础厂全体の构成
           サーバの増設
               ネットワークブートについて
           WEBサーバ
               フロントエンドとバックエンドの構成の理由
               ログ
               グラフ情報の見方
           DBサーバ
               コネクション数一定の理由
               グラフ情報の見方

Copyright ? KLab Inc. All rights reserved.   1
顿厂础厂全体の构成
         全体の
         全体
                                                        フロントエンドサービス
                LVS               LVS
              (Active)          (Backup)                バックエンドサービス



             Contents            Master     Master
                                                      WEBサーバ WEBサーバ
              Master            (Primary) (Secondary)


            WEBサーバ WEBサーバ WEBサーバ WEBサーバ WEBサーバ


                         DBサー
                         DBサーバ                 MC          LLS      GANGLIA
                          (Master)           (Active)    (Active)    (Active)

                         DBサー
                         DBサーバ                  MC         LLS      GANGLIA
                          (Slave)            (Backup)    (Backup)   (Backup)

                         DBサ
                         DBサーバ
                          (Slave)
Copyright ? KLab Inc. All rights reserved.                                      2
今回の
     今回のメインターゲット
                                                        フロントエンドサービス
                LVS               LVS
              (Active)          (Backup)                バックエンドサービス



             Contents            Master     Master
                                                      WEBサーバ WEBサーバ
              Master            (Primary) (Secondary)


            WEBサーバ WEBサーバ WEBサーバ WEBサーバ WEBサーバ


                        DBサーバ
                        DBサーバ                  MC          LLS             サーバの
                                                                    ?WEBサーバの増設
                                                                     GANGLIA
                         (Master)            (Active)    (Active)       設定について
                                                                      ?設定について
                                                                      (Active)

                    DBサーバ
                    DBサーバ       MC                         LLS      GANGLIA
                     (Slave) (Backup)                    (Backup)   (Backup)
                        サーバの
                 ?Slave サーバの増設
                       におけるコネク
                 ?DSASにおけるコネク
                    DBサーバ
                    DBサーバ
                   ションの
                   ションの扱い方
                     (Slave)
Copyright ? KLab Inc. All rights reserved.                                        3
サーバの増设について
     サーバの増设について
      環境構築手順
        1.     ハードウェア設置
        2.     OSのインストール
        3.     ディスクの同期
        4.     各種サービスの設定?確認
      2-4の処理で作成したイメージはほぼ共通
               あらかじめ作成してある
               あらかじめ作成してある
                    作成
                 各種イメージ
                   イメージを
                 各種イメージを
                ネットワークブート!
Copyright ? KLab Inc. All rights reserved.   4
奥贰叠サーバ増设の方法
         サーバ増設の
         サーバ増設
      DSASのマスターサーバ以外はネットワーク
      ブート(鶏と卵問題)
      1.     マスターサーバからInitramfs(ベースイメージを
             メモリに展開+rootマウント)で起動
      2.     ディスク(コンテンツ)の同期
      3.     負荷分散の対象に追加
                                                                 WEBサーバ増設例
                                                                    サーバ増設例
          3                                         1 2               1 2 3
       LVS                   Contents         Master     Master    増設したい
                                                                   増設したい
                                                                          WEBサーバ
     (Active)                 Master         (Primary) (Secondary) WEBサーバ

      LVS
    (Backup)                WEBサーバ WEBサーバ WEBサーバ WEBサーバ WEBサーバ


Copyright ? KLab Inc. All rights reserved.                                         5
奥贰叠サーバの増设?セットアップ(1)
        サーバの増設?セットアップ
        サーバ

       ●KLab用イメージをメモリに展開して起動
       ●マスターサーバからディスクをコピー




                                                      増設サーバのメモリに
                                                      増設サーバのメモリに
                                                         サーバ
                                                         ルートイメージを
                                                    カーネル+ルートイメージを展開

           増設WEBサーバ                           マスターサーバ
       メモリ             vmlinuz               メモリ
                      /usr、/bin
                        sshd

     ディスク                                    ディスク               KLab用イメージ
                      vmlinuz                        vmlinuz
                     /usr、/bin                      /usr、/bin        vmlinuz
                      Kayac様                         Kayac様         /usr、/bin
                     コンテンツ
                                      コピー           コンテンツ             sshd


Copyright ? KLab Inc. All rights reserved.                                      6
奥贰叠サーバの増设?セットアップ(2)
        サーバの増設?セットアップ
        サーバ

       ●rebootしてWEB用イメージをメモリに展開して起動
       ●負荷分散対象に割りあてて増設完了                                       増設サーバのメモリに
                                                               増設サーバのメモリに
                                                                  サーバ
                                                                  ルートイメージを
                                                             カーネル+ルートイメージを展開

                                                                 マスターサーバ
                                             増設WEBサーバ          メモリ
                  LVSサーバ
                                        メモリ      vmlinuz
                                                /usr、/bin
                                                  sshd
                                                               ディスク WEB用イメージ
                                      ディスク
                                                 vmlinuz                 vmlinuz
                                                /usr、/bin               /usr、/bin
                                                 Kayac様                   sshd
                                                コンテンツ



                                                            割り当て前のサービストラフィック
                                                        割り当て後のサービストラフィック
WEBサーバ       WEBサーバ       増設WEBサーバ
Copyright ? KLab Inc. All rights reserved.                                          7
実は奥贰叠サーバの
       初期構築は事前に
       やってたりします…
Copyright ? KLab Inc. All rights reserved.   8
実际の
     実际のWEBサーバの増設
           サーバの
           サーバ
●起動中の割り当てなしのWEBサーバが存在                                 ?Makuosan
 ●実はCM(コンテンツマスター) から makuosan で同期                      コンテンツの同期に利用するツール
●負荷分散対象に割りあてのみ

                                             コンテンツマスター         サービス提供中
                                                               サービス提供中
       初期構築済みで起動中
       初期構築済みで起動中
            みで
                                                              Kayac様WEBサーバ
      割り当てなしWEBサーバ                           メモリ
                                                            メモリ      vmlinuz
     メモリ             vmlinuz                                        /usr、/bin
                    /usr、/bin                                         sshd
                      sshd
                                             ディスク
                                                           ディスク
   ディスク                                                                vmlinuz
                 vmlinuz                       コンテンツ
                                                                      /usr、/bin
                /usr、/bin                    Kayac様コンテンツ          Kayac様コンテンツ
            Kayac様コンテンツ                            …

                   差分発生?
                   差分発生?コピー                                 差分発生?
                                                            差分発生?コピー



                                      割り当て変更のみ
                                          変更のみ
Copyright ? KLab Inc. All rights reserved.                                        9
サーバ(厂濒补惫别)の増设方法
       サーバ
     DBサーバ       の
      DSASのマスターサーバ以外がネットワーク
      ブート
      1.     マスターサーバからInitramfsで起動
      2.     同期レプリケーション
      3.     負荷分散の対象に追加
                                                             DBサーバ増設例
                                                               サーバ増設例


                             Contents         Master      Master
                                                                    WEBサーバ WEBサーバ
                              Master         (Primary)1 (Secondary)
       LLS          3
     (Active)
                            WEBサーバ WEBサーバ WEBサーバ WEBサーバ WEBサーバ
      LLS                                                    1
    (Backup)
                                             DBサーバ
                                             DBサーバ         DBサーバ
                                                           DBサーバ
                                              (Master) 2    (Slave)
Copyright ? KLab Inc. All rights reserved.                                      10
サーバ(厂濒补惫别)の増设?セットアップ
       サーバ
     DBサーバ       の増設?

       ●DBイメージをメモリに展開して起動
       ●MySQLのデータはローカルのディスク(RAID)に書く
       ★オンメモリなのでシステム領域のディスク障害なし


                                                          RAID等を有効にしカーネル
                                                                有効に
                                                            ルートイメージで
                                                          + ルートイメージでブート

   Master DBサーバ                          増設DBサーバ         マスターサーバ
メモリ             vmlinuz             メモリ       vmlinuz    メモリ
               /usr、/bin                     /usr、/bin               boot> db
                 sshd                          sshd

ディスク                              ディスク                   ディスク   DB用イメージ
                InnoDB                       InnoDB                 vmlinuz
                                                                   /usr、/bin
                                                                     sshd

                      DBレプリケーション
Copyright ? KLab Inc. All rights reserved.                                      11
サーバ(Slave)の増設 セットアップ
       サーバ
     DBサーバ       の増設-セットアップ
                     セットアップ(2)

         負荷分散
              MySQLの参照系のクエリーは Slave へ問い合せ
              Slave 参照はLLS(内部負荷分散サーバ)を経由
                                             LLSサーバ




                                                              割り当て後の参照先トラフィック
                                                                    参照先トラフィック

                                                              割り当て前の参照先トラフィック
                                                                    参照先トラフィック

                                                               slaveへの問合せトラフィック
                                                                    への問合せ
                                                                      問合
                         DBサーバ        DBサーバ       増設DBサーバ
     WEBサーバ
                          (Slave1)     (Slave2)    (Slave3)
Copyright ? KLab Inc. All rights reserved.                                        12
増设の话は终了
   次からは WEB サーバ


Copyright ? KLab Inc. All rights reserved.   13
奥贰叠サーバの构成について
        サーバの構成について
        サーバ
                                                        フロントエンドサービス
                LVS               LVS
              (Active)          (Backup)                バックエンドサービス



             Contents            Master     Master
                                                      WEBサーバ WEBサーバ
              Master            (Primary) (Secondary)


            WEBサーバ WEBサーバ WEBサーバ WEBサーバ WEBサーバ


                        DBサーバ
                        DBサーバ                  MC          LLS      GANGLIA
                         (Master)            (Active)    (Active)    (Active)

                        DBサーバ
                        DBサーバ                   MC         LLS      GANGLIA
                         (Slave)             (Backup)    (Backup)   (Backup)

                        DBサーバ
                        DBサーバ
                         (Slave)
Copyright ? KLab Inc. All rights reserved.                                      14
サーバ:フロントエンド
        サーバ フロントエンドと
     WEBサーバ フロントエンドとバックエンド

              WEBサーバが 2 段構成
                                                    HTTPリクエスト
                      Why?                          HTTPレスポンス



                                  LVSサーバ



                                             Apache:フロントエンド


                                                      プロキシ
                                             Apache:バックエンド
                           WEBサーバ

Copyright ? KLab Inc. All rights reserved.                      15
础辫补肠丑别:リクエスト処理が大量に来た场合
            リクエスト処理が大量に
            リクエスト処理

             プロキシなしの設定
                 バックエンドのみで処理を行う必要
                 PHPのアプリケーションで処理できる数は限定
             プロキシありの設定
                 バックエンドでPHPのアプリケーションサービス
                 フロントエンドではリクエストのみを受けつける処理
                     フロントエンドがバックエンドよりも多くの処理が来た場合
                     はWEBサーバの台数を増加させる指標



Copyright ? KLab Inc. All rights reserved.     16
Apache: フロントエンドの設定
            フロントエンドの
                             フロントエンド
                       httpd.conf in global context
      MinSpareServers                                      64   アイドル子プロセス最小値
                                                                アイドル子プロセス最小値

      MaxSpareServers                                     255   アイドル子プロセス最大値
                                                                アイドル子プロセス最大値

      StartServers                                         64    起動時の プロセスの
                                                                 起動時の子プロセスの数

      ServerLimit                                         256    プロセス数全体の
                                                                 プロセス数全体の上限値
                                                                     数全体

      MaxClients                                          255   応答可能なプロセス数
                                                                応答可能なプロセス数の上限値

      MaxRequestsPerChild                                   0   1プロセスが扱うリクエストの
                                                                 プロセスが  リクエストの
                                                                      上限値




                                                                Gangliaの統計
                                  Apache
Copyright ? KLab Inc. All rights reserved.   Frontend Report                   17
Apache: バックエンドの設定
            バックエンドの
                               バックエンド
                        httpd.conf in global context
     MinSpareServers                                      16    アイドル子プロセス最小値
                                                                アイドル子プロセス最小値

     MaxSpareServers                                      31    アイドル子プロセス最大値
                                                                アイドル子プロセス最大値

     StartServers                                         16    起動時の プロセスの
                                                                起動時の子プロセスの数

     ServerLimit                                          32    プロセス数全体の
                                                                プロセス数全体の上限値
                                                                    数全体

     MaxClients                                           31   応答可能なプロセス数
                                                               応答可能なプロセス数の上限値

     MaxRequestsPerChild                                   0   1プロセスが扱うリクエストの
                                                                プロセスが  リクエストの
                                                                     上限値




                                                               Gangliaの統計
                                   Apache
Copyright ? KLab Inc. All rights reserved.   Backend Report                   18
サーバ:笔补驳别痴颈别飞(笔痴)グラフ
        サーバ
     WEBサーバ         (   グラフ
                PVの算出
           1.     負荷分散対象のWEBサーバからログデータ取得
           2.     時系列にマージ + パースして算出?

                              手間がかかる
                              手間がかかる
                              たいときに即見
                                   即見えない
                          PVを見たいときに即見えない

           Apache のログ出力にはパイプ処理可能
                リアルタイムにログをプログラムに渡して処理


Copyright ? KLab Inc. All rights reserved.   19
サーバ:统计
        サーバ 統計グラフ
     WEBサーバ 統計グラフ




                                  PHPで処理したレスポンスタイム
                                      処理したレスポンスタイム
                                        した

           カスタムログの設定(backend のログ出力)
                                   バックエンド: Virtual Server Context
        CustomLog                 “|measure-prog “%{%H:%M:%S}t %>s %D”
Copyright ? KLab Inc. All rights reserved.                               20
次からDBサーバ


Copyright ? KLab Inc. All rights reserved.   21
サーバ:コネクション
       サーバ コネクションの
     DBサーバ コネクションの扱い方

                DBサーバのコネクションのはりかた
           1.     WEBサーバからコネクションはりっぱなし
           2.     WEBサーバから必要に応じてコネクション切断

                                             必要に じてコネクション
                                             必要に応じてコネクション
        コネクションはりっぱなし例
        コネクションはりっぱなし例
              はりっぱなし                             切断する
                                                   する例
                                                を切断する例

                                                            DBサーバ




                                                            WEBサーバ




Copyright ? KLab Inc. All rights reserved.                          22
サーバ:必要
       サーバ 必要に じてコネクション
                 コネクションの
     DBサーバ 必要に応じてコネクションの切断
               WEBサーバからコネクションはりっぱなし
          1.     メリット:コネクションを接続するオーバヘッド存
                 在なし
          2.     デメリット:コネクションの個数がWEBサーバのプ
                 ロセス数に依存
               WEBサーバから必要に応じてコネクション切
               断
          1.     メリット:コネクションを接続するオーバヘッド
          2.     デメリット:WEBサーバのプロセス数に非依存
                      DSASの場合は「2」
                           場合は
                    必要に じてコネクション
                           コネクション切断
                    必要に応じてコネクション切断
Copyright ? KLab Inc. All rights reserved.   23
サーバ:可能であればオンメモリ
       サーバ 可能であればオンメモリで
     DBサーバ 可能であればオンメモリで
      MySQLのメモリの扱い方
                利用するバッファ領域
                    グローバルバッファ
                    スレッドバッファ(コネクション)

    利用するメモリ
    利用するメモリ=
      する
        グローバルバッファ
                   コネクション数
      + スレッドバッファ x コネクション数
                                             コネクションをはりっぱなしの場合
                                             コネクションをはりっぱなしの場合
                                                   をはりっぱなしの

    コネクション数
    コネクション数=WEBサーバのプロセス数
               サーバのプロセス数
          サーバを増設すると
    もしWEB サーバを増設すると
            つに使用できるメモリ
              使用できるメモリ量
    コネクション1つに使用できるメモリ量が制限24
Copyright ? KLab Inc. All rights reserved.
サーバ:各种统计情报
     DBサーバ 各種統計情報
       サーバ




                内部クエリの識別と
                内部クエリの識別と数
                  クエリ                        キャッシュのヒット率
                                             キャッシュのヒット率




Copyright ? KLab Inc. All rights reserved.                25
まとめ

           ネットワークブートは便利
               用途に分けてイメージを変更することが可能
           WEBサーバ
               Apache は二段構成
           DBサーバ
               Connection の考え方
               可視化情報重要



Copyright ? KLab Inc. All rights reserved.   26

More Related Content

顿蝉补蝉周りのお话

  • 1. DSAS 周 り の お 話 Ryosuke MIURA Copyright ? KLab Inc. All rights reserved. 0
  • 2. 目次 顿厂础厂全体の构成 サーバの増設 ネットワークブートについて WEBサーバ フロントエンドとバックエンドの構成の理由 ログ グラフ情報の見方 DBサーバ コネクション数一定の理由 グラフ情報の見方 Copyright ? KLab Inc. All rights reserved. 1
  • 3. 顿厂础厂全体の构成 全体の 全体 フロントエンドサービス LVS LVS (Active) (Backup) バックエンドサービス Contents Master Master WEBサーバ WEBサーバ Master (Primary) (Secondary) WEBサーバ WEBサーバ WEBサーバ WEBサーバ WEBサーバ DBサー DBサーバ MC LLS GANGLIA (Master) (Active) (Active) (Active) DBサー DBサーバ MC LLS GANGLIA (Slave) (Backup) (Backup) (Backup) DBサ DBサーバ (Slave) Copyright ? KLab Inc. All rights reserved. 2
  • 4. 今回の 今回のメインターゲット フロントエンドサービス LVS LVS (Active) (Backup) バックエンドサービス Contents Master Master WEBサーバ WEBサーバ Master (Primary) (Secondary) WEBサーバ WEBサーバ WEBサーバ WEBサーバ WEBサーバ DBサーバ DBサーバ MC LLS サーバの ?WEBサーバの増設 GANGLIA (Master) (Active) (Active) 設定について ?設定について (Active) DBサーバ DBサーバ MC LLS GANGLIA (Slave) (Backup) (Backup) (Backup) サーバの ?Slave サーバの増設 におけるコネク ?DSASにおけるコネク DBサーバ DBサーバ ションの ションの扱い方 (Slave) Copyright ? KLab Inc. All rights reserved. 3
  • 5. サーバの増设について サーバの増设について 環境構築手順 1. ハードウェア設置 2. OSのインストール 3. ディスクの同期 4. 各種サービスの設定?確認 2-4の処理で作成したイメージはほぼ共通 あらかじめ作成してある あらかじめ作成してある 作成 各種イメージ イメージを 各種イメージを ネットワークブート! Copyright ? KLab Inc. All rights reserved. 4
  • 6. 奥贰叠サーバ増设の方法 サーバ増設の サーバ増設 DSASのマスターサーバ以外はネットワーク ブート(鶏と卵問題) 1. マスターサーバからInitramfs(ベースイメージを メモリに展開+rootマウント)で起動 2. ディスク(コンテンツ)の同期 3. 負荷分散の対象に追加 WEBサーバ増設例 サーバ増設例 3 1 2 1 2 3 LVS Contents Master Master 増設したい 増設したい WEBサーバ (Active) Master (Primary) (Secondary) WEBサーバ LVS (Backup) WEBサーバ WEBサーバ WEBサーバ WEBサーバ WEBサーバ Copyright ? KLab Inc. All rights reserved. 5
  • 7. 奥贰叠サーバの増设?セットアップ(1) サーバの増設?セットアップ サーバ ●KLab用イメージをメモリに展開して起動 ●マスターサーバからディスクをコピー 増設サーバのメモリに 増設サーバのメモリに サーバ ルートイメージを カーネル+ルートイメージを展開 増設WEBサーバ マスターサーバ メモリ vmlinuz メモリ /usr、/bin sshd ディスク ディスク KLab用イメージ vmlinuz vmlinuz /usr、/bin /usr、/bin vmlinuz Kayac様 Kayac様 /usr、/bin コンテンツ コピー コンテンツ sshd Copyright ? KLab Inc. All rights reserved. 6
  • 8. 奥贰叠サーバの増设?セットアップ(2) サーバの増設?セットアップ サーバ ●rebootしてWEB用イメージをメモリに展開して起動 ●負荷分散対象に割りあてて増設完了 増設サーバのメモリに 増設サーバのメモリに サーバ ルートイメージを カーネル+ルートイメージを展開 マスターサーバ 増設WEBサーバ メモリ LVSサーバ メモリ vmlinuz /usr、/bin sshd ディスク WEB用イメージ ディスク vmlinuz vmlinuz /usr、/bin /usr、/bin Kayac様 sshd コンテンツ 割り当て前のサービストラフィック 割り当て後のサービストラフィック WEBサーバ WEBサーバ 増設WEBサーバ Copyright ? KLab Inc. All rights reserved. 7
  • 9. 実は奥贰叠サーバの 初期構築は事前に やってたりします… Copyright ? KLab Inc. All rights reserved. 8
  • 10. 実际の 実际のWEBサーバの増設 サーバの サーバ ●起動中の割り当てなしのWEBサーバが存在 ?Makuosan ●実はCM(コンテンツマスター) から makuosan で同期 コンテンツの同期に利用するツール ●負荷分散対象に割りあてのみ コンテンツマスター サービス提供中 サービス提供中 初期構築済みで起動中 初期構築済みで起動中 みで Kayac様WEBサーバ 割り当てなしWEBサーバ メモリ メモリ vmlinuz メモリ vmlinuz /usr、/bin /usr、/bin sshd sshd ディスク ディスク ディスク vmlinuz vmlinuz コンテンツ /usr、/bin /usr、/bin Kayac様コンテンツ Kayac様コンテンツ Kayac様コンテンツ … 差分発生? 差分発生?コピー 差分発生? 差分発生?コピー 割り当て変更のみ 変更のみ Copyright ? KLab Inc. All rights reserved. 9
  • 11. サーバ(厂濒补惫别)の増设方法 サーバ DBサーバ の DSASのマスターサーバ以外がネットワーク ブート 1. マスターサーバからInitramfsで起動 2. 同期レプリケーション 3. 負荷分散の対象に追加 DBサーバ増設例 サーバ増設例 Contents Master Master WEBサーバ WEBサーバ Master (Primary)1 (Secondary) LLS 3 (Active) WEBサーバ WEBサーバ WEBサーバ WEBサーバ WEBサーバ LLS 1 (Backup) DBサーバ DBサーバ DBサーバ DBサーバ (Master) 2 (Slave) Copyright ? KLab Inc. All rights reserved. 10
  • 12. サーバ(厂濒补惫别)の増设?セットアップ サーバ DBサーバ の増設? ●DBイメージをメモリに展開して起動 ●MySQLのデータはローカルのディスク(RAID)に書く ★オンメモリなのでシステム領域のディスク障害なし RAID等を有効にしカーネル 有効に ルートイメージで + ルートイメージでブート Master DBサーバ 増設DBサーバ マスターサーバ メモリ vmlinuz メモリ vmlinuz メモリ /usr、/bin /usr、/bin boot> db sshd sshd ディスク ディスク ディスク DB用イメージ InnoDB InnoDB vmlinuz /usr、/bin sshd DBレプリケーション Copyright ? KLab Inc. All rights reserved. 11
  • 13. サーバ(Slave)の増設 セットアップ サーバ DBサーバ の増設-セットアップ セットアップ(2) 負荷分散 MySQLの参照系のクエリーは Slave へ問い合せ Slave 参照はLLS(内部負荷分散サーバ)を経由 LLSサーバ 割り当て後の参照先トラフィック 参照先トラフィック 割り当て前の参照先トラフィック 参照先トラフィック slaveへの問合せトラフィック への問合せ 問合 DBサーバ DBサーバ 増設DBサーバ WEBサーバ (Slave1) (Slave2) (Slave3) Copyright ? KLab Inc. All rights reserved. 12
  • 14. 増设の话は终了 次からは WEB サーバ Copyright ? KLab Inc. All rights reserved. 13
  • 15. 奥贰叠サーバの构成について サーバの構成について サーバ フロントエンドサービス LVS LVS (Active) (Backup) バックエンドサービス Contents Master Master WEBサーバ WEBサーバ Master (Primary) (Secondary) WEBサーバ WEBサーバ WEBサーバ WEBサーバ WEBサーバ DBサーバ DBサーバ MC LLS GANGLIA (Master) (Active) (Active) (Active) DBサーバ DBサーバ MC LLS GANGLIA (Slave) (Backup) (Backup) (Backup) DBサーバ DBサーバ (Slave) Copyright ? KLab Inc. All rights reserved. 14
  • 16. サーバ:フロントエンド サーバ フロントエンドと WEBサーバ フロントエンドとバックエンド WEBサーバが 2 段構成 HTTPリクエスト Why? HTTPレスポンス LVSサーバ Apache:フロントエンド プロキシ Apache:バックエンド WEBサーバ Copyright ? KLab Inc. All rights reserved. 15
  • 17. 础辫补肠丑别:リクエスト処理が大量に来た场合 リクエスト処理が大量に リクエスト処理 プロキシなしの設定 バックエンドのみで処理を行う必要 PHPのアプリケーションで処理できる数は限定 プロキシありの設定 バックエンドでPHPのアプリケーションサービス フロントエンドではリクエストのみを受けつける処理 フロントエンドがバックエンドよりも多くの処理が来た場合 はWEBサーバの台数を増加させる指標 Copyright ? KLab Inc. All rights reserved. 16
  • 18. Apache: フロントエンドの設定 フロントエンドの フロントエンド httpd.conf in global context MinSpareServers 64 アイドル子プロセス最小値 アイドル子プロセス最小値 MaxSpareServers 255 アイドル子プロセス最大値 アイドル子プロセス最大値 StartServers 64 起動時の プロセスの 起動時の子プロセスの数 ServerLimit 256 プロセス数全体の プロセス数全体の上限値 数全体 MaxClients 255 応答可能なプロセス数 応答可能なプロセス数の上限値 MaxRequestsPerChild 0 1プロセスが扱うリクエストの プロセスが リクエストの 上限値 Gangliaの統計 Apache Copyright ? KLab Inc. All rights reserved. Frontend Report 17
  • 19. Apache: バックエンドの設定 バックエンドの バックエンド httpd.conf in global context MinSpareServers 16 アイドル子プロセス最小値 アイドル子プロセス最小値 MaxSpareServers 31 アイドル子プロセス最大値 アイドル子プロセス最大値 StartServers 16 起動時の プロセスの 起動時の子プロセスの数 ServerLimit 32 プロセス数全体の プロセス数全体の上限値 数全体 MaxClients 31 応答可能なプロセス数 応答可能なプロセス数の上限値 MaxRequestsPerChild 0 1プロセスが扱うリクエストの プロセスが リクエストの 上限値 Gangliaの統計 Apache Copyright ? KLab Inc. All rights reserved. Backend Report 18
  • 20. サーバ:笔补驳别痴颈别飞(笔痴)グラフ サーバ WEBサーバ ( グラフ PVの算出 1. 負荷分散対象のWEBサーバからログデータ取得 2. 時系列にマージ + パースして算出? 手間がかかる 手間がかかる たいときに即見 即見えない PVを見たいときに即見えない Apache のログ出力にはパイプ処理可能 リアルタイムにログをプログラムに渡して処理 Copyright ? KLab Inc. All rights reserved. 19
  • 21. サーバ:统计 サーバ 統計グラフ WEBサーバ 統計グラフ PHPで処理したレスポンスタイム 処理したレスポンスタイム した カスタムログの設定(backend のログ出力) バックエンド: Virtual Server Context CustomLog “|measure-prog “%{%H:%M:%S}t %>s %D” Copyright ? KLab Inc. All rights reserved. 20
  • 22. 次からDBサーバ Copyright ? KLab Inc. All rights reserved. 21
  • 23. サーバ:コネクション サーバ コネクションの DBサーバ コネクションの扱い方 DBサーバのコネクションのはりかた 1. WEBサーバからコネクションはりっぱなし 2. WEBサーバから必要に応じてコネクション切断 必要に じてコネクション 必要に応じてコネクション コネクションはりっぱなし例 コネクションはりっぱなし例 はりっぱなし 切断する する例 を切断する例 DBサーバ WEBサーバ Copyright ? KLab Inc. All rights reserved. 22
  • 24. サーバ:必要 サーバ 必要に じてコネクション コネクションの DBサーバ 必要に応じてコネクションの切断 WEBサーバからコネクションはりっぱなし 1. メリット:コネクションを接続するオーバヘッド存 在なし 2. デメリット:コネクションの個数がWEBサーバのプ ロセス数に依存 WEBサーバから必要に応じてコネクション切 断 1. メリット:コネクションを接続するオーバヘッド 2. デメリット:WEBサーバのプロセス数に非依存 DSASの場合は「2」 場合は 必要に じてコネクション コネクション切断 必要に応じてコネクション切断 Copyright ? KLab Inc. All rights reserved. 23
  • 25. サーバ:可能であればオンメモリ サーバ 可能であればオンメモリで DBサーバ 可能であればオンメモリで MySQLのメモリの扱い方 利用するバッファ領域 グローバルバッファ スレッドバッファ(コネクション) 利用するメモリ 利用するメモリ= する グローバルバッファ コネクション数 + スレッドバッファ x コネクション数 コネクションをはりっぱなしの場合 コネクションをはりっぱなしの場合 をはりっぱなしの コネクション数 コネクション数=WEBサーバのプロセス数 サーバのプロセス数 サーバを増設すると もしWEB サーバを増設すると つに使用できるメモリ 使用できるメモリ量 コネクション1つに使用できるメモリ量が制限24 Copyright ? KLab Inc. All rights reserved.
  • 26. サーバ:各种统计情报 DBサーバ 各種統計情報 サーバ 内部クエリの識別と 内部クエリの識別と数 クエリ キャッシュのヒット率 キャッシュのヒット率 Copyright ? KLab Inc. All rights reserved. 25
  • 27. まとめ ネットワークブートは便利 用途に分けてイメージを変更することが可能 WEBサーバ Apache は二段構成 DBサーバ Connection の考え方 可視化情報重要 Copyright ? KLab Inc. All rights reserved. 26

Editor's Notes

  • #4: 人工衛星から DSAS をみるとこんな感じになります。 DSAS の内部は大きく2つに分類できます。 外部からのリクエストに対して応答する「フロントエンドサービス向け」のサーバ群と 内部用のサービスを提供する「バックエンドサービス向け」のサーバ群です ここでは、「フロントエンドサービス向け」のサーバ群の特徴についてお話したいと思います。
  • #5: 人工衛星から DSAS をみるとこんな感じになります。 DSAS の内部は大きく2つに分類できます。 外部からのリクエストに対して応答する「フロントエンドサービス向け」のサーバ群と 内部用のサービスを提供する「バックエンドサービス向け」のサーバ群です ここでは、「フロントエンドサービス向け」のサーバ群の特徴についてお話したいと思います。
  • #16: 人工衛星から DSAS をみるとこんな感じになります。 DSAS の内部は大きく2つに分類できます。 外部からのリクエストに対して応答する「フロントエンドサービス向け」のサーバ群と 内部用のサービスを提供する「バックエンドサービス向け」のサーバ群です ここでは、「フロントエンドサービス向け」のサーバ群の特徴についてお話したいと思います。