sql >> データベース >  >> RDS >> Mysql

EC2 Amazon Linux AMI MySQL CPU @ 62%アイドル時?

    私が考えることができる唯一のことは、mysqldがユーザーrootとしてstraceを使用して実際に何をしているのかを調べることです:

     strace -p 2959
    

    通常、mysqldは接続を待機している必要があるため、straceはすぐにブロックし、select()の呼び出しを表示する必要があります。

    呼び出しは次のようになります:

     select(SOCKETNO, [OTHER_FDs], NULL, NULL, NULL)
    

    特に重要なのは、タイムアウト時間値である4番目のパラメーターです。 NULLの場合、誰かが接続するまでmysqldがスリープすることを意味します。 NULLでない場合は、mysqldが指定された時間待機してから、メンテナンス作業を行うことを意味します。非常に短いタイムバルブは、CPU消費を説明する可能性があります。

    MySQLは常にNULL(無限)タイムアウトを採用していると思います。それは理にかなっており、これが私が今到達できるmysqldsがどのように動作しているかです。

    ただし、selectが再びスリープしないようにする接続処理の問題がある可能性があります。この動作がmysqldの起動直後に表示されるのか、誰かが接続した後に表示されるのかを確認してください。



    1. Atomikos:PostgreSQLの使用時にデータが保存されない

    2. 結合フィールドでコンマ区切りリストを使用して2つのテーブルを結合する方法

    3. Rを介してOracle10gデータベースに接続する

    4. 複数の場合の SQL クエリは、単一の行を複数の列として取得します