データベースレベル
A:問題のチェック一般的なツール
1:msyqladmin:MySQLクライアントは、あなたが操作を管理することができます
2:mysqlshowは:ビューへの強力なシェルコマンドに
3:ショー[SESSION | GLOBAL]変数:データベース・パラメータ情報を表示
4:SHOW [SESSION | GLOBAL] STATUS:ビューステータス情報データベース
5:INFORMATION_SCHEMA:メタデータを取得する方法
6:SHOW ENGINE INNODBのSTATUS:すべての状態のInnoDBエンジン
7:SHOW PROCESSLIST:接続されたすべてのセッションの現在の状態を表示
8:説明:クエリの実行計画を取得
9:ショーインデックス:テーブルのインデックス情報を参照してください
10:スローログ:レコードスロークエリ
11:mysqldumpslow:分析slowlogファイル
2:ソリューション
一般的な緊急チューニングアイデア:、突然のビジネスカトンの申請をすぐにシーンを対処するために、通常の業務処理のニーズを実行できません
1:ショーPROCESSLIST。
2:選択IDを説明し、名前STUから名= 'clsn'; #ALL id名年齢性別;
表から番組インデックス、ID = 2-1の機能がセット> 30もたらすSTUからのID、名前を選択します。
3:実施計画の判断、インデックスの問題(存在しないが、合理的である)、または文自体が問題です。
4:「%ロック%」のようなショーの状態;#クエリのロック状態
SESSION_IDを殺す;#は、問題のセッションを殺します。
従来のチューニングのアイデアは:循環的なビジネスケイトンのために、例えば、10〜11は、特に低速すべてのビジネスですが、また、うまく時間をかけて使用することができます。
1:ビューslowlog、分析slowlog、スロークエリ文を分析します。
2:特定の優先順位に従って、ある調査全て遅い文ずつ。
3:トップSQLを分析し、実行、デバッグを説明し、文の実行時間を参照してください。
4:インデックスまたは文自体を調整します。
システムレベル
A:問題のチェック一般的なツール
CPU方面:vmstatの、SARのトップ、htopの、NMON、Solarisでmpstat。
メモリ:無料、PS-AUX;
IOデバイス(ディスク、ネットワーク):IOSTAT、SS、netstatの、iptraf、iftop、lsofを、
vmstatコマンドの説明:
1)手続きオブジェクト:Rショーどのように多くのプロセスがCPU時間を待っています。Bは、非中断さ睡眠プロセスの数で表示しました。I / Oのを待っています
2)メモリ:swpd表示は、ディスク番号のデータブロックに切り替えられます。データブロックは、ユーザ・データ・ブロックをバッファリングすることは、オペレーティングシステムのデータブロックの数を使用していません。
3)スワップ:ディスクから交換されるデータブロックの量に第2のオペレーティングシステムのメモリ及びディスクメモリから切り替えます。S0とS1は、好ましくは0です。
4)10:B1が第二の装置、B0に書き込まれたデータ・ブロックのデバイス番号から読み出されます。これは、ディスクI / Oを反映します
5)システム:ショーの発生及びコンテキスト切り替え(CS)当たりの()内の割り込み番号の数。
6)CPU:、実行中のユーザーコード、システムコードを表示するアイドル状態、I / OのCPU時間を待っ
iostatコマンドの説明:
コマンドの例:iostatの-dk 1 5
iostatの-d -k -x 5(稼働率(%UTIL)と応答時間(のawait)を参照してください)
1)TPS:第二の装置当たりの転送回数を。「最初の送信」と「1つのI / O要求。」論理リクエストを複数に結合されてもよい「1つのI / O要求を発行します。」
工場は第によって定義されたIOハードウェア工場の最大数:2)IOPS
3)「最初の送信」要求されたサイズは不明です。
4)kB_read / S:データの量は、第2のデバイス(ドライブを表す)から読み出され、
5)KB_wrtn / S:書かれた第2のデバイスにデータの量(駆動表されます)。
6)kB_read:データの総量が読み取ります。
7)kB_wrtn:データ書き込みの総数量;これらの単位はキロバイトです。
2:問題のシステムレベルのソリューション
あなたは最後の良い負荷の高い、低いか良いではと思いますか?実際の生産では、一般的に問題がない限り、90%以下などのCPUを検討しました。
当社は、以下のこれらの特殊なケースを却下しません。
CPU高負荷、低負荷IO
1)メモリが十分ではありません。
2)パフォーマンスの低下ディスク。
3)SQLの問題--->データベース層に、SQLの問題をさらに調査。
4)IO問題(ディスクに重要な、襲撃設計が不十分な、襲撃のダウングレード、ロックは、単位時間に高すぎるTPS)。
5)高すぎるTPS:小さなデータIO、フルテーブルスキャンの多数の多数。
IO高負荷、低負荷、CPU
1)小さなIOが多数書いています:
自動コミット、小さなIOの多数;第二の製造業者によって定義されたIO値IO / PS、ディスク、ハードウェア工場の最大数。
2)大規模なIOの多数は書いている:問題は、SQLの比較的大きなチャンスです
IOと高いCPU負荷を持っています
問題は、ハードウェアまたはSQLではありません。