[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba
Upcoming SlideShare
Loading in...5
×
 

[C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba

on

  • 604 views

 

Statistics

Views

Total Views
604
Views on SlideShare
604
Embed Views
0

Actions

Likes
1
Downloads
18
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    [C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba [C14] ソーシャル ゲーム基盤を支える SQL Server by Takashi Inaba Presentation Transcript

    • C14:SQL Server ソーシャル ゲーム基盤を支える SQL Server ~モニター・分析して安定運用を目指す~ gloops, Inc. Takashi Inaba
    • はじめに ソーシャル ゲーム業界として「めずらしく」 Microsoft 製品を使 用した基盤を使用しています。gloops で提供しているゲームの データベースは SQL Server を使用しています。 ゲーム タイトルが増えれば、その分 SQL Server も増えます。 たくさんの SQL Server をどのようにしておもりしているのか、 SQL Server を既に利用されている方はもちろん、これから SQL Server を使おうかと思っていらっしゃる方に少しでも役に立て られればと思います なお、ここで発表する内容の一部には、試行錯誤中のものも含ま れます db techshowcase 東京 2013 2
    • 自己紹介 • 株式会社 gloops システム基盤部のエンジニア • 主に SQL Server あたりをサポート • 2013年6月まで日本マイクロソフトで Premier Field Engineer として従 事 • ひょんなことから現職 db techshowcase 東京 2013 3
    • 突然ですが、質問です
    • SQL Server は使いやすいですか?
    • SQL Server に対する誤解 (?) • 大規模システムには耐えられないでしょ? • いわゆるミッション クリティカルなシステム • いわゆる高トランザクション処理なシステム • チューニングなしでとりあえず動くやつでしょ? • Oracle Enterprise Manager にあるパフォーマンス確認ツールみ たいなものってないから、簡単に調査しにくそう などなど。。。
    • 実際どうでしょうか? • 大規模システム • 公共交通系、銀行勘定系、SAP のバック データベースに利用されてい る • チューニングなしでは動くだけです • 最適な Index を設定して少ないリソースで素早く目的のデータを • ディスク アライメントも必要な場合も • SQL Server Management Studio (SSMS) にあります • リソースの利用状況 モニターでCPU、メモリ、コストの高いクエリな どが確認可能 db techshowcase 東京 2013 7
    • gloops はどうか • ソーシャル ゲームはヒットすると、瞬く間にトラフィックが急 増 • これを裁くためのインフラ基盤整備が重要 • データベースもしかり • SQL Server 2008 R2 を採用した当初 • 思った以上に安定していた (そうです) • トラフィック急増で IO が頭打ち • ストレージを強化 • Fusion IO 社 の ioDrive を採用 db techshowcase 東京 2013 8
    • ストレージを強化したら 確かにパフォーマンスはよくなりました でも、それで終わりでしょうか? db techshowcase 東京 2013 9
    • 潜在的な問題点はないか? • 1つの大きな問題の解決が問題のはじまり • 機能追加やクエリ実行内容によって、問題点は見え隠れ • そんな時こそ、定常的な情報収集を! • 結構、やれてないと思います (yo) db techshowcase 東京 2013 10
    • 普通採取するパフォーマンス データって何ですか? • パフォーマンス カウンター ログで • • • • CPU メモリ ディスク など • ディスク サブ システム内のパフォーマンス データ(?) • ネットワーク スイッチ db techshowcase 東京 2013 11
    • でも本当は • SQL Server 関連のパフォーマンスも採取していただきたいです • • • • SQL Server: Buffer Manager オブジェクト SQL Server: General Statistics オブジェクト SQL Server: SQL Statistics オブジェクト など これら SQL Server 関連の情報を採取して、総合的に分析する必要あり!! [参考] [SQL Troubleshooting] 第2回 : Tips -パフォーマンス ログの採取方法 (Windows Server 2003 ~ Windows Server 2008 R2) http://blogs.msdn.com/b/jpsql/archive/2012/04/20/tips-windows-server-2003-windows-server-2008-r2.aspx db techshowcase 東京 2013 12
    • もっと詳しく分析したい • クエリ単位で処理時間・コストを知りたい • SQL Server トレースでトレース採取 • クエリ1つ1つを確認できます • 実行プランも採取できます でも、本番環境で採取するときは、パフォーマンス ダウンに注意を! db techshowcase 東京 2013 13
    • 情報採取するとしても SQL Server トレースとパフォーマンス データ別々に採るの? めんどくさいなー。。。 大丈夫です! そんな面倒くさがりの方でも簡単に情報収集できます! db techshowcase 東京 2013 14
    • SQLdiag ユーティリティ • 以下の診断情報が収集可能 • • • • • Windows パフォーマンス カウンター ログ Windows イベント ログ SQL Server トレース SQL Server ブロッキング情報 SQL Server の構成情報 [参考] SQLdiag ユーティリティ http://msdn.microsoft.com/ja-jp/library/ms162833.aspx db techshowcase 東京 2013 15
    • でも。。。 SQLDiag ユーティリティって、どちらかというと問題発生時に しか使えないような。。。 もう少しライトウェイトな情報収集方法はないの? 動的管理ビューを使用して情報採取!!
    • 動的管理ビュー (DMV) • msdn マガジン DMV のサンプルが紹介 例) 待ち時間の原因となっているリソースを探す SELECT TOP 10 [Wait type] = wait_type, [Wait time (s)] = wait_time_ms / 1000, [% waiting] = CONVERT(DECIMAL(12,2), wait_time_ms * 100.0 / SUM(wait_time_ms) OVER()) FROM sys.dm_os_wait_stats WHERE wait_type NOT LIKE '%SLEEP%' ORDER BY wait_time_ms DESC; [参考]隠れたデータを明らかにしてアプリケーションのパフォーマンスを最適化する http://msdn.microsoft.com/ja-jp/magazine/cc135978.aspx db techshowcase 東京 2013 18
    • DMV も毎回収集しないといけないじゃないですか。。。 • もっと簡単な方法はないですか? データ コレクションを使ってみてはいかがですか!! db techshowcase 東京 2013 19
    • データ コレクション • SQL Server 2008 から搭載された機能 • 実稼働環境に合わせてデータ収集の範囲を調整可能 • 収集したデータは専用のデータウェア ハウスに格納 • 見た目は普通のユーザー データベース • 実環境とは別の管理系の SQL Server に格納したほうが良いです • データ コレクター API を使って拡張できるそうです • 実践途中です (;´Д`) • 既定で準備されているレポートでも十分かなと • ディスク使用量の概要レポート • クエリ統計の履歴 • サーバーの利用状況の履歴 [参考]データ コレクション http://msdn.microsoft.com/ja-jp/library/bb677179.aspx db techshowcase 東京 2013 20
    • DEMO: データコレクションの設定とレポート表示 db techshowcase 東京 2013 21
    • これらのレポートで問題個所がわかったら • 実行プランを見ましょう • SQL Server トレースで採取できましたね • データ コレクタのレポートでも確認できましたね 実行プランを見てチューニングをして、改善を試行!!
    • まとめ • SQL Server も収集する情報がわかれば、おもりは可能です • 標準ツールで必要な情報を一括採取できます • 手っ取り早くしたいならデータ コレクタを使いましょう • でも、実行環境にデータ コレクタの DWH 作らないでください • 問題点がわかったら、対策を練りましょう • まずは、実行プランを見てチューニングできるところを探してみる db techshowcase 東京 2013 23
    • おわり db techshowcase 東京 2013 24