Linux でメモリ問題を解決する方法

Linux でメモリ問題を解決する方法

RAMを消費しているプロセスの詳細を取得する方法。コマンドを実行すると、Mysql が大量の RAM を消費していることがわかりました。Mysql が通常の動作とはかけ離れた大量の RAM を消費している理由をどうすれば知ることができますか?

「」以外にプロセスの詳細を取得するためのコマンドはありますか?追伸

答え1

SHOW PROCESSLIST現在実行中のクエリに関する情報を取得するには、MySQL 内で実行する必要があります。

SHOW PROCESSLIST に関する MySQL ドキュメント

答え2

mytop - MySQL Server のパフォーマンスをリアルタイムで監視するためのコマンド ライン ユーティリティ。mytop が適切に機能するには、次のものが必要です。

  • Perl 5.005以降
  • Getopt::Long
  • DBI と DBD::mysql
  • CPAN の Term::ReadKey

上記は Linux ディストリビューション向けに指定したものです。

答え3

MySQL は、最適化されていないクエリを処理しているときに、大きなメモリ内一時テーブルを作成する必要があるようです。

有効になっていない場合は、my.cnf ファイルに次のコードを追加して、スロー クエリ ログを有効にします。

log_slow_queries   = /var/log/mysql/mysql-slow.log
long_query_time    = 2
log-queries-not-using-indexes

次に、/var/log/mysql/mysql-slow.log ファイルを確認します。ファイルにリストされている各クエリに対して EXPLAIN を実行し、そのクエリの実行時に何が起きているかを把握する必要があります。その情報を基に、クエリを最適化してパフォーマンスを向上させることができます。

関連情報