気の向くままに書き綴る

勉強会参加したメモや日々の思ったことのメモ等

【参加】【 ヒカ☆ラボ 】負荷対策・負荷分散勉強会!! 〜原因究明から、対処法、実例発表まで〜 ロードバランサ、DBチューニング、NoSQLと幅広くお話します!

 匕カラボ
■大谷 祐司(おおたに ゆうじ) 氏
株式会社CA ADvance(シーエー・アドバンス)技術統括本部 本部長 兼 技術責任者
インターネット広告運用のプラットフォーム「SearchSuite」をゼロから一人で立ち上げる。

徐々にパフォーマンスを上げていくやり方としてすごく勉強になりました。
小さくスタートするやり方として、今後参考させて頂きます。

ただ、贅沢を言えば
前半部分より、後半部分に時間を割いて欲しかったなぁと(´・ω・`)

Slave構成よりMemcacheが聞きたかったし、
DELLのServerよりFusion-ioのほうが聞きたかったなあ・・




メモ

                                                                • -

 SearchSuite
   分析データのため、一度に扱うデータが大きい 
   リスティング広告の運用をシステム
   顧客向けレポート作成
   システム構成
     YahooとGoogleからAPIから取得DB → WEBで展開しExcelダウンロード
  
   2500レコード/日
   160万レコード/日  キーワード単位
        
  システム構成 
   Cent5
   PHP5.3
   Apache2.2
   MYSLQL5.5 4.3T
   Memche
    
  1.
    MYSQL5.1
    問題点
     テーブルロック
      MySAM→InnoDB
     グラフ表示
      画面に表示するたびにデータ計算→BATCHで予めデータを持っている
     バッチ終わらない
      SQL bulk-insert
      並行でやるようにした
      INSERT‥UPDATE DUPLICATE KEY UPDATE 差分でインサートできる
            
     
  2.きちんとシステムが動くようにする
     問題:パフォーマンス
      キーワード入れる昨日
      160万レコード/日

      HW増強
        1台構成→4台構成
        ボトルネックがわかりやすくなった
      DBにIndex貼る  
        Slow-quey-log見る
        explain文を見る  
        Replication
          
  3.原因調査からパフォーマンス・チューニング
     ユーザーによる負荷
       ログチェック       
       シャーディング
         年月またはクライアント
       あえて正規化しないのを選択
       インデックスの見直し
        複合インデックスに変えてい 
          EXPLAINでチェック
       My.cnf設定
        innodb_file_per_tables
         ibdata をテーブル単位で分ける
        ib_logfile 更新用の領域
        FileSize 1364 MB
        FileMaxーー  3 MB←メモ切れなかった、、      
       キャッシュサーバー
         Memcached
          Key-Value
          オンメモリで動作
          1つのキーは1MB 
           値保持
           検索の仕組み
           DB←Memchachに入れるタイミング
         
        結果、2倍早くなりましたー    
           
  4.パフォーマンスを求めて
     HW 10台追加
       IPVS ラウンドロビンでやっている
       LBも入れた
     PHPアクセラレーター
        eAccelerator導入
         バイトコードでやり取りできる。
         二倍早い
    
     DB-SLAVEのLB入れる
        負荷対策にはいいよ!
        参照系の多いサイトには有効
                   
     ネットワーク二重化
     
  5.さらなるパフォーマンスを求めて
   DBはSSDよりSAS
   HWはFusion-ioがいい
   
   http://atnd.org/events/33416

  MySQL5.6
    新機能
     レプリケーションの並列
     MemcachedプロトコルInnoDBに直接アクセス可能

12月20日の負荷分散勉強会