it-swarm-id.com

Scaling Joomla dengan Database read write splitting

Saya punya server mysql di Amerika Utara (menggunakan Amazon RDS) dan replika baca. Saya juga punya replika baca untuk wilayah baru - Australia.

Server Australia sangat lambat karena sifat dinamis Joomla membacakan server DB utama di N. America. Saya sudah mencoba menggunakan proxy mysql untuk ini untuk membagi baca/tulis tapi itu bukan solusi jangka panjang. proxy Mysql tampaknya sudah mati.

Opsi apa lagi yang saya miliki?

9
Tom

Jika Anda menggunakan versi terbaru PHP maka Anda mungkin menggunakan driver php mysqlnd. http://us3.php.net/manual/en/book.mysqlnd. php

Mysqlnd memiliki plugin plugin khusus dan dapat berfungsi dengan cara yang sama adalah proxy mysql - misalnya http://pecl.php.net/package/mysqlnd_ms adalah plugin yang membagi membaca dan menulis serta memiliki rilis resmi terbaru 9/2013

Juga perlu diingat, Joomla selalu menulis ke tabel sesi. Menggunakan memcache atau apc hanya menyimpan data sesi dalam cache - bukan metadata sesi.

Anda bisa mendapatkan peningkatan kinerja yang sama dengan menjatuhkan tabel #_sessions Anda dan membuatnya kembali menggunakan mesin data Memory alih-alih innodb atau myisam.

2
garyamort

Joomla (dan CMS serupa lainnya) telah dikembangkan untuk arsitektur LAMP, dengan mempertimbangkan hosting umum. Misalnya. Latensi rendah antara server Web dan Database.

Amazon RDS dirancang untuk skala database relasional di cloud. Jadi, karena distribusi regional dan redundansi adalah penting, maka diharapkan akan ada lentensi yang lebih tinggi.

Jika Anda memiliki persyaratan khusus untuk meminta Amazon RDS, Anda dapat mengonfigurasi:

  • Joomla dengan MySQL lokal untuk manajemen umum situs (aset statis, mudah ditiru)
  • Koneksi Amazon RDS, koneksi khusus aplikasi untuk pengembangan Anda

Ekstensi pihak ketiga, yang dikembangkan dengan latensi rendah, tidak akan berfungsi dengan Amazon RDS.

2
Anibal

Setiap halaman yang dihasilkan oleh Joomla harus menulis ke tabel sesi.

Jadi saya akan menyarankan untuk menggunakan memcache atau apc untuk manajemen sesi. Itu akan membantu Anda mencapai nol-menulis ke database, karenanya baca-replika akan cukup untuk sebagian besar halaman.

1
Shyam

Opsi peningkatan kecepatan lainnya adalah dengan menempatkan Nginx di depannya sebagai proxy terbalik. Ini akan mengurangi banyak akses database karena halaman umum tidak akan pernah pergi ke joomla dan mysql Tidak dapat menemukan konfigurasi proxy tetapi ini adalah pengaturan dasar

http://docs.joomla.org/Nginx

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

https://stackoverflow.com/questions/23960359/how-to-get-nginx-proxy-caching-to-work-with-dynamic-content

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

0
tristanbailey