web-dev-qa-db-ja.com

WordPressの縮尺はどのくらいですか?

新しいWordPressとその新機能により、WordPressは単純なブログエンジン以上の機能を備えているようです。しかし、 WordPressのスケールは、1日あたり10Kから100Kユーザーと言われていますか。

多くのユーザーにとって、その大部分は優れたキャッシュ戦略を持つことですが、WordPressがどれだけうまく機能し、これを容易にし、必要な制御を行えるようになるでしょう。 Fxは、ページの一部をキャッシュし、ユーザーがカスタマイズした部分だけをレンダリングすることができます。マスター/スレーブデータベースの設定などをサポートしますか。

34
googletorp

明らかに高速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を使用して最適化できる例を示し、その方法を示します。

本当にしたい場合大きな銃を抜く構成できますMemcachedHyperDBNginx and /物事をスピードアップするために(後者はWordPressから驚くべきスケーラビリティを引き出す方法に本当に進化しているようです):

そして最後にパフォーマンスに特化した新しいWordPressフォーカスのWebホストがあります WP EngineZippyKid その他:

良いニュースはすべてのスケールが非常にうまくできている;技術的な複雑さとコストを伴う無料かつ簡単な非常にローエンドから、トラフィックが大幅に増加するにつれて増加します。 WordPressで小さく始めれば、それは素晴らしいことです。トラフィックが増加し、それを合理的に収益化している場合、必要に応じてスケーリングすると非常にコスト効果が高くなります。

少なくともIMO。 :)

38
MikeSchinkel
  1. 共有ホスティングから多くを期待しないでください - あなたが共有ホスト上にいるなら、遅くなってWordPressを責めないでください。共有ホストは、何千ものアカウントを1つのサーバーに詰め込むことがあります。そのため、1日10ドルのアカウントの最適化を終日費やすことができますが、問題ありません。マーケティングの流行語にも注意してください - それが「クラウド」と言っているからといって、1台のサーバーを数百人から数千人の人々と共有しているわけではありません。

  2. 現時点ではキャッシュプラグインは必要ないと思います。 WPソースコードを見ると、コアに組み込まれた高度なキャッシングがすでにあります。キャッシュのキャッシュのキャッシュのキャッシュ - 気を付けろ、これは逆効果かもしれません。

  3. あなたを遅くしている主なものは遅いMySQLクエリです、そして、WordPressは箱から出してすぐにあなたにここでトラブルを与えてはいけません。しかし、50,000を超えるコメントがあるため、コメントクエリを "LIMIT"する必要がありました。 (これはまだ修正されていますか?)また、もしあなたが変わった何か(何千ものカテゴリのような)をしているのなら、それも問題になるかもしれません。

  4. 私は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;        
} 
4
PJ Brunet

最終的にはWordPressをある程度の速度で遅くするものが3つあります。

  • ホスティングスタック - 最新のソフトウェアを備えた優れたホストが必要です - PHP 7、Nginx、Varnish、Redis、fail2ban、およびPerconaDBはすべて優れた選択肢です。
  • テーブルスキャンはありません - 多くのプラグインは、テーブルスキャンが何であるかさえ知らないアマチュアコーダーによって書かれています。テーブルスキャンを回避するために必要なことが2つあります。使用可能なインデックスと、インデックスを使用できるように作成されたクエリです。
  • PHPループ内のSQLクエリは、ほとんど、またはほとんどありません。一部のプラグインコードは、明らかに小さなサイトでのみテストされています。 /役職。 1ページあたりのSQLクエリ数が100以下であることが理想的です。多くのように思えますが、実際にはそうではなく、100未満では約200ミリ秒のTTFBがキャッシュされません。

上記の設定が完了したら、キャッシュを追加できます。ワニス、CDN、ページキャッシングなど.

スケールアウトする必要がある場合は、データベースにPerconaDB XtraDB、ファイルにUnisonを使用してクラスタを作成できます。このように、あなたはあなたのwp-adminとcronランナーとして1つのノードを持つことができます、そして他のノードはロードバランサーの後ろでウェブトラフィックを提供します。

0
Dave Hilditch