web-dev-qa-db-ja.com

DrupalのMySQLパフォーマンステストに進むにはどうすればよいですか?

サーバーには多くのDrupalサイトがインストールされています。一部のサイトには多くのビューとブロックが設定されています。時々、そのようなDrupalサイト(多くのビューとコンテンツを含む)が突然応答しなくなるか、非常に遅くなります。ただし、残りのDrupalコンテンツが少ないサイトは、その間は正常に動作しているようです。MySQLデータベースを再起動する必要があります応答しないDrupalサイトを通常の状態に戻します。cronを使用して定期的なMySQLの再起動をセットアップすることを考えていました。

この定期的な再起動オプションは、私にはあまり魅力的ではありません。この問題の原因を見つけたい。それは主にMySQLが原因であると思いますが、それでも推測です。

サーバーのパフォーマンスの問題は経験していません。この問題に取り組むための最善の方法は何ですか? MySQLの問題であり、他の問題ではないことをどのように確認できますか? MySQLの問題である場合、それを解決するためにどのような基本的な手順を実行する必要がありますか?

5

次に、DBTunerモジュールとDevelモジュールの推奨事項について説明します。また、可能な限りMysqlを再起動しないことにも同意します。これは、RAMに一連のキャッシュを構築し、再起動する場合は最初からやり直す必要があります。mysqlが少なくともmy-huge.cnf以上を使用していることを確認する必要があります。このスレッドでDrupal.org http://drupal.org/node/85768 は、パフォーマンスを向上させるためのMysqlのチューニングに関する情報があります。Mysqlの設定変更はサーバーを壊すことが多いため、常に開発サーバーでmy.cnfの変更をテストしてください警告や説明なし。

また、PHPに十分な量のRAMがあることを確認してください。PHPでサイトを表示しているだけの場合、遅延により低速のdbサーバーが表示されることがあります。 Webブラウザー。memory_limit= 32M以上(通常は64〜126M)に設定します。ただし、Apacheのパフォーマンスに悪影響を及ぼし始める可能性があるため、高すぎないようにしてください。

ここにはHigh Performanceグループもあります http://groups.drupal.org/high-performance 。ぶらぶらするのに良い場所です。

4
Codeblind

使用できる最初のツールは Devel です。これは、長い呼び出しが行われたことを示します。
そして あります インターネットでmysqlをパフォーマンスおよびチューニングするための多くのツール。

4
Nikit

MySQLを定期的に、特に定期的に再起動する必要がある場合、問題があると思います。

この無反応はどのくらいの頻度で発生しますか?マシンにSSHでアクセスできますか? MySQLプロンプトにアクセスして「show processlist;」を実行できますか? ?

クエリに時間がかかる場合は、ロックされたテーブルの問題だと思います。

3
Christian

dbtuner モジュールが非常に役立つことがわかりました。特定のフィールドにインデックスを付ける簡単な方法を提案して提供します。試してみます。

2
G.Martin

次回これが発生した場合、SHOW FULL PROCESSLIST phpmyadmin/mysqlにあります。実行中のクエリが表示されます。ロックされているテーブルと、クエリが実行されている秒数。クエリがわかったら、何が悪いのかを理解するのがずっと簡単になります。

私は少し偏っていますが、 dbtuer は、ビューで遅いクエリを見つけるためのかなり甘いツールです。 Devel すべての遅いクエリを見つけるための岩。

2
mikeytown2

バージョン7を使用している場合、いくつかのパフォーマンスのヒントは この投稿にあります です。

2
Tangurena