web-dev-qa-db-ja.com

大きなマシンにはどちらを置くべきですか? MagentoデータベースのMagentoWebサーバー?

新しいMagentoWebサイトを立ち上げようとしていますが、この問題に関するフィードバックに興味がありましたか? Magento PHPコードが遅い、またはMagento MySQLの操作が遅いと思いますか?2つのサーバーの大きなボックスに分割する必要がありますか?

2
Magento Newb

私たちの経験:Magentoストアのみをホストしています。

悲しいことに、Magentoでは、別のDBサーバーを使用する必要がある、さらに悪いことに、最も強力なサーバーをDBサーバーとして使用する必要があるという誤解が非常によくあります。

複数のWebサーバーを使用するクラスター構成でない限り、決して Magento用に別のデータベースサーバーを使用することを推奨します。

いくつかのサーバーからの最新の統計でこれをバックアップします。

小さなMagentoWebサイト(1日あたり4,000のユニークビジター)から負荷平均を取得しました。個別のDBサーバーが一般的にCPUとリソースをほとんど使用していないことがわかります。実際、必要なのは大量のRAMだけです。

MySQLは絶対にnot Magentoインストールのボトルネックです。ただし、2台のサーバーを使用する必要がある場合は...

...あなたのサイトの1日あたりのユニークビジター数が約10,000人であることに基づいて、この推奨事項を提供します。しかし、正確な返信を得るには、実際に投稿する必要があります。

  1. トラフィック、訪問、ヒットの目標レベル
  2. サーバーの完全な仕様

Webサーバーの場合

  1. できるだけ多くの高速なCPUが必要です(コアが多いほど、同時実行のサポートが大きくなります。クロック速度が速くなるほど、個々のページの読み込み時間が速くなります)
  2. CPUに比例した量のRAMが必要です。通常、コアあたり1GBが適切なガイドです。
  3. I/Oは問題ではないため、RAID1 7200RPM +ディスクで十分です(WDRE4またはWD3000 HLFS)

DBサーバーの場合

  1. 多くのコアは必要ありません。デュアルコアで十分です。ただし、クロック速度が速いほど、個々のクエリは高速になります。
  2. できるだけ多くのRAMが必要です。MagentoはInnoDBとInnoDBの渇望RAMを使用して正常に動作します。
  3. I/Oと一般的なIOPSはDBサーバーを作成/中断します-したがって、高速のディスクセットアップが必要ですが、10kのビジターストアの場合、RAID1 7200RPM +ディスクで十分です(WDRE4またはWD3000HLFS)。

2つのサーバー間のWebトラフィック間の負荷分散も可能ですが、この構成はこの応答の範囲をはるかに超えています。

MySQL Queries

データベースサーバーの負荷

Database Server Load

Webサーバーの負荷

Web server load

特定のプロセスを実行するためにphpmemory_limitを最大512MBまでバウンスする必要があったので、ロードされた各Apacheプロセスが本質的にメモリをバグアウトするのを見てきました。 Apache Webサービスをphpインタープリターに変えると、mod_php5をすぐに削除する方法を学びますISリソースの最適な使用法ではありません。FastCGIでは、Apache WorkerMPMを実行して、それを提供するhtmlに戻します。 FastCGIがPHPインタープリターを別個のプロセスとして実行している間、最適です。これに加えて、何らかのopcodeキャッシングが必要になります。メモリとCPUの使用に最適化された主要な最速サーバーはWeb /である必要がありますPHPサーバー。高速ディスクI/O用に最適化されたセカンダリサーバーは、MySQLサービスを実行する場所です。

2つのサーバーシステムでは、Webサーバー用に12GB以上のメモリを備えたクアッドコアシステムと、dbサーバー用に8GB以上の高速ディスクサブシステムを備えた2コアシステムを実行するのが一般的です。

2
Fiasco Labs

データベースをより大きなサーバーに配置することをお勧めします。重要なサイト(複数のサーバーが必要)がある場合は、データベースに多くの負荷をかけ、クエリを実行することになります。そして確かに、その負荷はphpファイルの解析よりも大きなボトルネックになるでしょう。

0
Cyril Gupta

通常、データベースをより大きく、より強力なサーバーに配置する方が良いと思います。

その理由は、ダウンタイムなしでアプリケーションを別のサーバーに移動する方がはるかに簡単だからです。アプリケーション自体をスケールアウトする方がはるかに簡単で効果的です。 2つのアプリケーションサーバーの負荷分散が適切に行われると、ほぼ2倍になりますが、データベースではそのような値を取得することはなく、レプリケーションやシャーディングを実行する必要があります。これは、httpロードバランサーの構成よりもはるかに困難です。

したがって、アプリケーションが拡大する場合は、現在余裕のある最高のデータベースサーバーを使用してください。これにより、データベースの移動/スケールアウトが必要になるまでの時間が長くなり、アプリケーション/ httpサーバーの移動/スケールアウトよりも困難になります。

0
rvs