
私の質問
./mysqlslap --user=root --concurrency=50 --iterations=1 --pass=toor -vv --create-schema=db --query="SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) INNER JOIN wp_term_taxonomy ON (wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id) WHERE 1=1 AND wp_term_taxonomy.taxonomy = 'category' AND wp_term_taxonomy.term_id IN ('1') AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 35, 6"
いくつかの結果
Average number of seconds to run all queries: 68.904 seconds
Minimum number of seconds to run all queries: 68.904 seconds
Maximum number of seconds to run all queries: 68.904 seconds
Number of clients running queries: 50
Average number of queries per client: 1
負荷平均は 32 を超えてピークに達します。
テストマシンの仕様は次のとおりです。
- 4GBのRAM
- E6550 @ 2.33GHz (2コア)
- シングルSATAディスク
- Debian Lenny + Apache + PHP + MySQL
MySQLの設定は読み取ることができますこちらパフォーマンスを向上させるためにどのように調整すればよいかアドバイスをいただける方はいらっしゃいますか? よろしくお願いします。
答え1
- w3tcまたはwp-super-cacheをインストールする
- 投稿/タグの数を減らします (WordPress は投稿のリビジョンを wp_posts テーブルに保存することを覚えておいてください。そのため、ログインしたままにして 5 分ごとに自動保存を実行すると、そこにかなりの数の余分なリビジョンが保存される可能性があります)
- ワードプレスを置き換える
- より高速なディスクを入手する
直感的に設定内の調整可能な項目のいくつかには同意できないが、http://blog.mysqltuner.com/実行できるスクリプトが含まれており、構成設定に関する入力を提供します。最適な推奨事項を提供するには、mysql を 48 時間以上実行する必要があります。
- テーブル定義キャッシュ
- thread_concurrency (クアッドコアでは通常 6 で実行します)
- join_buffer_size (join_buffer としてリストされていますが、これは間違っている可能性があります。show status/show variables を見て、構成値が期待どおりに有効になっていることを確認してください)
データベースと同じパーティションで電子メールを実行していない場合は、noatime、nodiratime を使用してファイルシステムをマウントすることを検討してください。ファイルシステム上のその他の調整可能な設定を確認してください。