新しいWordPressとその新機能により、WordPressは単純なブログエンジン以上の機能を備えているようです。しかし、 WordPressのスケールは、1日あたり10Kから100Kユーザーと言われていますか。
多くのユーザーにとって、その大部分は優れたキャッシュ戦略を持つことですが、WordPressがどれだけうまく機能し、これを容易にし、必要な制御を行えるようになるでしょう。 Fxは、ページの一部をキャッシュし、ユーザーがカスタマイズした部分だけをレンダリングすることができます。マスター/スレーブデータベースの設定などをサポートしますか。
明らかに高速Webサーバーが提供する静的ファイルと同様にスケーリングしないで、何をロードしてからロードするかを把握しなければならないCMSは、同様に実行されません、WordPressまたはさもないと。問題の1つは、URLリクエストごとに必要なデータベースクエリの数であり、2年前にDrupalのみを扱った経験があり、現在WordPressで2年以上はWordPressはその部門ではるかに優れています。
とはいえ、ほとんど何もありませんどんな力でもスケールする "out-of-the-the-box";それはすべてですスケーラビリティのニーズが大きくなったときに何ができますか?
「大量のトラフィック」の下端には、グレートキャッシングプラグインおよび安価なCDNとの統合があります。 IT予算がなく、ホスティング予算が少ないという点でかなり良い仕事です。確認する他の質問と回答を次に示します。
パフォーマンスのボトルネックを特定するためのプロファイリングのオプションがあります。
ボトルネックが特定されたら、Transients APIなどの方法でlocalized Optimizationを実行できます。このQ&Aでは、Transients APIを使用して最適化できる例を示し、その方法を示します。
本当にしたい場合大きな銃を抜く構成できますMemcached、HyperDB、Nginx and /物事をスピードアップするために(後者はWordPressから驚くべきスケーラビリティを引き出す方法に本当に進化しているようです):
そして最後にパフォーマンスに特化した新しいWordPressフォーカスのWebホストがあります WP Engine 、 ZippyKid その他:
良いニュースはすべてのスケールが非常にうまくできている;技術的な複雑さとコストを伴う無料かつ簡単な非常にローエンドから、トラフィックが大幅に増加するにつれて増加します。 WordPressで小さく始めれば、それは素晴らしいことです。トラフィックが増加し、それを合理的に収益化している場合、必要に応じてスケーリングすると非常にコスト効果が高くなります。
少なくともIMO。 :)
共有ホスティングから多くを期待しないでください - あなたが共有ホスト上にいるなら、遅くなってWordPressを責めないでください。共有ホストは、何千ものアカウントを1つのサーバーに詰め込むことがあります。そのため、1日10ドルのアカウントの最適化を終日費やすことができますが、問題ありません。マーケティングの流行語にも注意してください - それが「クラウド」と言っているからといって、1台のサーバーを数百人から数千人の人々と共有しているわけではありません。
現時点ではキャッシュプラグインは必要ないと思います。 WPソースコードを見ると、コアに組み込まれた高度なキャッシングがすでにあります。キャッシュのキャッシュのキャッシュのキャッシュ - 気を付けろ、これは逆効果かもしれません。
あなたを遅くしている主なものは遅いMySQLクエリです、そして、WordPressは箱から出してすぐにあなたにここでトラブルを与えてはいけません。しかし、50,000を超えるコメントがあるため、コメントクエリを "LIMIT"する必要がありました。 (これはまだ修正されていますか?)また、もしあなたが変わった何か(何千ものカテゴリのような)をしているのなら、それも問題になるかもしれません。
私はNginXでLinode 512を使用していて、 "top"はPHPとNginXが要求ごとに1/100秒未満でそれらの仕事をしていることを示しています。ほとんどすべてのCPU時間はMySQLと密接に関係しています。あなたは20ドルのLinodeで毎月100万ページを提供することができました、しかし、あなたがプラグインと写真を加え始めたら、私はあなたが「1GB」のLinodeを必要とすると思います。私の観点からは、それはほとんど直線的です:ページビューが2倍になったら、ちょうどあなたのLinodeのサイズを2倍にしてください。
免責事項:私はLinodeのために働きません。
更新(〜2年後)あなたはPHPでページの一部をキャッシュしたいので、これが私が使う簡単な解決策です、それは驚くほど速いです。私は1ページの100分の1秒以内にいくつかの別々の部分/ページをキャッシュしています。 RAMディスクがこれをさらに速くすることができるように思えますが、それは私の必要性のために十分に速いです:
$cache_file = "./cache/portion-1". $since; // maybe round() this $since timestamp
$cache_life = 1000; // seconds to keep this cached
$filemtime = filemtime($cache_file); // returns FALSE if file does not exist
if (!$filemtime or (time() - $filemtime >= $cache_life)) {
// heavy lifting starts
$output = 'Heavy!';
// heavy lifting ends
if (!file_put_contents($cache_file,$output,LOCK_EX)) { echo 'error'; } // save the cache
echo $output;
} else {
// load from cache
$output = file_get_contents($cache_file);
echo $output;
}
最終的にはWordPressをある程度の速度で遅くするものが3つあります。
上記の設定が完了したら、キャッシュを追加できます。ワニス、CDN、ページキャッシングなど.
スケールアウトする必要がある場合は、データベースにPerconaDB XtraDB、ファイルにUnisonを使用してクラスタを作成できます。このように、あなたはあなたのwp-adminとcronランナーとして1つのノードを持つことができます、そして他のノードはロードバランサーの後ろでウェブトラフィックを提供します。