• PHPもMySQLも初心者です。

    WordPressを設置しているレンタルサーバーで、WordPressのサイトと同時に
    WordPressとは関係ない自作のPHPによるサイトを構築してみています。

    つい先ほど、「max user connections」が上限を超えているといったエラーが出て、
    どちらのサイトにもアクセスできない状態になりました。
    使用しているサーバーの「max user connections」は「8」に設定されているようです。

    またMySQLの「ランタイム情報」をphpMyAdminから見たところ、
    次のような項目が赤字表示となっていました。

    Slow_queries 943
    Handler_read_rnd 1,079 M
    Handler_read_rnd_next 4,221.45 M
    Slow_launch_threads 122
    Created_tmp_disk_tables 4,655 k
    Select_full_join 14 k
    Select_range_check 9
    Sort_merge_passes 92
    Opened_tables 32 k
    Table_locks_waited 4,888

    「Handler_read_rnd」などをGoogleで検索してみたところ、
    WordPressとMySQLチューニングに関する記事で、
    WordPressを使うと「Handler_read_rnd」が高くなってしまう云々というのを見つけました。

    これらの数値はWordPressに起因するものなのか、
    それともWordPressではこれらについて十分な改善がされており、
    自作PHPの作り方が下手と考えられるかを教えていただきたいです。

    参考になるかわかりませんが、参考までに、
    WordPressで構築しているサイトは1日15000PVほどで、
    自作PHPのサイトは1日3000PVほどです。
    WordPressはWP Super Cacheプラグインを使っています。
    自作PHPのサイトはMySQLに接続する全てのページで
    有効期限30分間のキャッシュを生成しています。

    使用しているプラグインのうちいくつかが3.0にまだ対応していないとのことで、
    WordPress3.0へのバージョンアップはまだしておりません。

    以上、よろしくお願いします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • 負荷関連についてはサーバー知識無いのでよく分かりませんが、super cacheよりもw3 total cacheの方が高機能です。試せる状態であれば、ぜひ試してみてください。

    max user connectionsはMySQLサーバに同時に接続するユーザー数の上限です。つまりあなたの使用しているMySQLサーバに同時に8ユーザーを超えるユーザーが接続を要求すると以降のユーザーはサーバに接続できなくなります。

    解りやすくざっくり言うとサーバが過負荷状態になっているという事ですので、共有サーバであれば根本的な解決は別のMySQLサーバに移転するしかありません。あと8という設定はかなり少ないと思いますが、MySQL専用のサーバではなくてWEBサーバと共有でしょうか。

    Handler_read_rndは固定位置に基づくレコード読み取り要求の回数です。HTMLソースを動的生成するWordPressは頻繁にクエリをMySQLサーバに要求しますので、これらの値が高くなる傾向があります。ただランタイム情報で表示されているのはサーバ全体の統計情報だと思いますよ。

    トピック投稿者 reconte_tout

    (@reconte_tout)

    takuyaさん

    WP Super Cacheを導入した際にKtai Styleとの共存でかなり悩んだのですが、
    w3 total cacheはいろいろと使いやすそうですね。
    ありがとうございました。

    Heihachiroさん

    MySQLサーバに同時に8ユーザーを超えるユーザーが接続を要求すると以降のユーザーはサーバに接続できなくなります。

    “ユーザー数の上限”というのは、どういうことなのでしょうか?私のPHPの書き方がどうこうという問題ではなく、同じMySQLのサーバに同時に9つ以上のアカウント(9人以上の契約者)が一度にアクセスすると9人目からはNGということですか?

    ランタイム情報で表示されているのはサーバ全体の統計情報

    なるほどです!

    引き続きよろしくお願いします。

    すみません!reconte_toutさんにリファレンスを紹介しようとして確認したら、自分の勘違いに気づきました。

    max_connections がサーバ全体の最大同時接続数で、
    max_user_connections はユーザー毎の最大同時接続数ですね。

    これらがごっちゃになって、なぜかサーバ全体のユーザー最大同時接続数と覚えていたのですが完全な勘違いでした。お恥ずかしい限りです。申し訳ありません。

    こちらにMySQLのシステム変数に関するリファレンスがありますので確認してください。
    http://dev.mysql.com/doc/refman/5.1/ja/server-system-variables.html

    あんまりにも恥ずかしいので、少し穴掘って引き篭って来ます。どうもすみませんでした。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「WordPressとMySQLの負荷について」には新たに返信することはできません。