mysqlサーバcpu使用率が100%高すぎる

1204 ワード

cpuの消費が大きすぎるのは遅いsqlによるもので、遅いsqlは全表スキャン、スキャンデータ量が大きすぎる、メモリソート、ディスクソート、ロック競合などを含む.
mysql>show processlist;
すべての接続を表示
現象sql実行状態はsending data,copying to tmp table,copying to tmp table on disk,sorting result,using filesort,lockedである.問題があります.
すべてのステータスの説明はmysqlの公式サイトにありますhttp://dev.mysql.com/doc/refman/5.0/en/show-processlist.html
a.sending data:sqlはテーブルからデータをクエリーしています.クエリー条件に適切なインデックスがない場合、sqlの実行時間が長すぎます.
b.copying to tmp table on disk:一時結果セットが大きすぎて、データベースに規定された一時メモリサイズを超えているため、一時結果セットをディスクにコピーする必要がある
c.sorting result,using filesort:sqlはソート操作を実行しており、ソート操作はより多くのcpu消費を引き起こし、インデックスを追加したり、
ソート結果セットの縮小
異なるインスタンス仕様iopsの能力は、iopsが150個、すなわち1秒当たり150回のランダムディスクio操作を提供できるため、ユーザのデータ量が
大きくて、メモリが小さくて、iopsの制限のため、1本の遅いsqlはすべてのio資源を消費する可能性があって、他のsqlクエリーに影響して、データベースに対してすべてのsqlです
結果セットを返すには長い時間がかかり、アプリケーション全体の応答が遅くなります.
             tmp_table_size=1024M  

mysqlサーバへの接続
トップを実行
注意、topでは
CPU使用率はcpus、つまりすべてのcpu使用率の和が100%を超える場合があります.
2つの解決データベースcpuの使用率が高すぎる投稿は、チューニングされていないようです.
http://blog.itpub.net/469356/viewspace-758908/
http://blog.itpub.net/469356/viewspace-758909/
http://www.cnblogs.com/Joe-T/p/3193465.html