データベースの読み取りと書き込みの分割によるJoomlaのスケーリング


9

北米のmysqlサーバー(Amazon RDSを使用)とリードレプリカがあります。新しいリージョン-オーストラリアのリードレプリカも持っています。

オーストラリアのサーバーは、JoomlaがN.AmericaのメインDBサーバーを読み取る動的な性質を持つため、非常に遅いです。これにmysqlプロキシを使用して読み取り/書き込みを分割しようとしましたが、これは長期的な解決策ではありません。Mysqlプロキシは事実上死んでいるように見えます。

他にどのようなオプションがありますか?

回答:


2

Joomla(および他の同様のCMS)は、一般的なホスティングを念頭に置いて、LAMPアーキテクチャ用に開発されました。たとえば、Webサーバーとデータベース間の低遅延。

Amazon RDSは、クラウド内のリレーショナルデータベースをスケーリングするように設計されています。したがって、地域的な分散と冗長性が重要であるため、より高い待ち時間が予想されます。

Amazon RDSを求める特定の要件がある場合は、以下を構成できます。

  • サイトの一般管理用のローカルMySQLを備えたJoomla(静的アセット、複製が容易)
  • Amazon RDS接続、開発用のアプリケーション固有の接続

低レイテンシを考慮して開発されたサードパーティの拡張機能は、Amazon RDSでは機能しません。


私はあなたの2つのポイントを理解していませんか?私は引き続きRDSを使用します。オーストラリアでマスターRDSを提案しますか?また、カスタムコンポーネントを使用して、Joomlaコアを使用せずに、リードレプリカとのRDS接続を確実に活用できます。したがって、アプリケーション固有の接続の意味がわかりません。詳しく説明していただけますか?
トム

2

最近のバージョンのPHPを使用している場合は、php mysqlndドライバを使用している可能性があります。http://us3.php.net/manual/en/book.mysqlnd.php

MysqlndにはカスタムプラグインAPIがあり、mysqlプロキシと同じように機能できます。たとえば、http: //pecl.php.net/package/mysqlnd_msは読み取りと書き込みを分割するプラグインで、最近の公式リリースは9/2013でした。

また、Joomlaは常にセッションテーブルに書き込みます。memcacheまたはapcを使用すると、セッションメタデータではなく、セッションデータがキャッシュに格納されます。

#_sessionsテーブルを削除し、innodbやmyisamの代わりにメモリデータエンジンを使用してテーブルを再作成することで、同じパフォーマンス向上を得ることができます。


1

Joomlaによって生成されたすべてのページは、セッションテーブルに書き込む必要があります。

したがって、セッション管理にはmemcacheまたはapcの使用をお勧めします。これは、データベースへのゼロ書き込みを実現するのに役立つはずです。したがって、ほとんどのページでは、読み取りレプリカで十分です。


それは素晴らしい点です。これは書き込みに役立ちますが、Joomlaのコアにread-replicaをどのように使用すればよいのでしょうか。現在、mysqlプロキシまたはコアをハッキングするオプションのみが表示されます。HAproxyもオプションだと思いますが、それほど明確ではありません。
トム

1. AWS自体がレプリケーションをサポートします(aws.amazon.com/rds/faqs/#replication)2 .その他のオプションは、mysql組み込みレプリケーションです
Shyam

私はあなたが誤解していると思います。RDSですでにレプリケーションを使用しています。私の質問は、Joomlaの読み取り操作をその読み取りレプリカにどのように分割できるかです。
トム

0

別の速度向上オプションは、リバースプロキシとしてNginxをその前に置くことです。共通ページがjoomlaに移動せず、mysql Cantがプロキシ構成を見つけるため、これによりデータベースアクセスの多くが削減されますが、これらは基本セットアップです

http://docs.joomla.org/Nginx

http://www.nginxtips.com/nginx-joomla-friendly-url/

/programming/23960359/how-to-get-nginx-proxy-caching-to-work-with-dynamic-content

https://stackoverflow.com/a/2655023/6096

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.