Menggunakan Drupal 7 dengan APC, Varnish dan Memcache, tempat sampah apa yang akan dimasukkan ke dalam cache yang mana?

12

Saya mengoptimalkan situs web Drupal 7 dan saya memiliki pernis, memcache, dan APC yang semuanya terpasang dan bekerja dengan masing-masing modul Drupal 7 mereka. Di settings.php saya, saya memiliki $confopsi di bawah ini.

Pertanyaan saya adalah untuk mendapatkan kinerja yang lebih baik dan semua cache ini bekerja bersama dengan baik, apakah saya perlu menambahkan lebih banyak opsi konfigurasi?

Modul readme biasanya mengasumsikan sistem cache tunggal. Apakah ada tweks yang diperlukan untuk mendapatkan kinerja yang lebih baik dari menjalankan 3 backend caching terpisah?

// Add Varnish as the page cache handler.
$conf['cache_backends'][] = 'sites/all/modules/varnish/varnish.cache.inc';
$conf['cache_class_cache_page'] = 'VarnishCache';
// Drupal 7 does not cache pages when we invoke hooks during bootstrap.
// This needs to be disabled.
$conf['page_cache_invoke_hooks'] = FALSE;

$conf['cache_backends'][] = 'sites/all/modules/apc/drupal_apc_cache.inc';
$conf['cache_class_cache'] = 'DrupalAPCCache';
$conf['cache_class_cache_bootstrap'] = 'DrupalAPCCache';
//$conf['apc_show_debug'] = TRUE;  // Remove the slashes to use debug mode.

$conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc';
$conf['cache_default_class'] = 'MemCacheDrupal';
$conf['cache_class_cache_form'] = 'DrupalDatabaseCache';
pengguna1073319
sumber
Menurut saya, halaman proyek untuk APC menjawab pertanyaan Anda dengan cukup baik.
Letharion
Ya saya akan mengikuti saran ini ... "Gunakan APC untuk cache yang tidak sering berubah dan tidak akan tumbuh terlalu besar untuk menghindari fragmentasi. Pengaturan default APC akan memungkinkan Anda untuk ..", tapi saya masih bertanya ini pertanyaan karena tidak memperhitungkan Varnish juga, mungkin ada beberapa perubahan konfigurasi spesifik yang saya lewatkan, saya akan memposting persis apa yang akhirnya saya gunakan.
user1073319

Jawaban:

6

Terlihat oke untuk saya.

Yang bisa Anda coba adalah bermain-main dengan opsi Memcache. Misalnya ada bendera kompresi tetapi biasanya tergantung pada situs jika masuk akal untuk mengaktifkannya karena Anda kemudian memiliki penggunaan CPU yang lebih tinggi untuk melakukan kompresi / dekompresi.

Saya juga berpikir bahwa flag page_cache_invoke_hooks tidak diperlukan lagi, lihat http://drupal.org/node/804864 . Jika Anda tidak memerlukan kait itu untuk dijalankan, Anda dapat mengaturnya, tetapi Varnish tidak perlu lagi berfungsi.

Menggunakan cache APC dengan beberapa webservers berarti Anda mengalami ketidakkonsistenan saat menghapus cache di satu server, jadi jika Anda memiliki banyak server, Anda mungkin ingin menggunakan Memcache untuk cache dan cache_bootstrap juga. Saya juga memiliki masalah stabilitas saat menggunakan cache APC tapi saya menggunakannya untuk semua cache, yang mungkin menjadi masalah.

Berdir
sumber
Apakah ada masalah dengan menggunakan lebih dari satu sistem caching seperti apc, memcache, dll?
chrisjlee
Tidak, Anda dapat mencampurnya sesuai tampilan. Anda bisa meletakkan tempat cache yang lebih kecil seperti 'cache' di APC yang lebih cepat tetapi tidak memiliki banyak ruang biasanya dan meletakkan yang lebih besar di memcache.
Berdir
Terima kasih. Apakah Anda tahu di mana saya bisa mengetahui cara melakukannya?
chrisjlee
Setiap nampan cache dapat dikonfigurasi untuk menggunakan backend cache tertentu, sebagian besar backend cache datang dengan dokumentasi tentang cara mengkonfigurasi mereka dan Anda dapat menggabungkannya seperti yang Anda inginkan.
Berdir
2

Saya menjalankan pengaturan serupa dengan memcache server dan Varnish secara lokal di setiap server web. Saya pikir bahwa caching halaman secara lokal dengan Varnish tidak akan seefektif menggunakan memcache.

Saya sedang mempertimbangkan menggunakan MongoDB untuk sesuatu karena saya sudah menjalankannya juga dan juga merupakan sumber daya bersama.

Jerry Sumpton
sumber