Bagaimana cara saya meningkatkan kinerja Situs Drupal7 saya? [Tutup]

10

Untuk seseorang yang baru mengenal Drupal, saya melihat bahwa ada banyak sumber daya yang tersedia di Drupal Caching tetapi saya tidak yakin yang mana dari mereka untuk digunakan.

Gokul NK
sumber
1
Kita dapat mendiskusikan apakah kita menginginkan pertanyaan kanonik untuk ini pada meta, tapi saya masih berpikir itu terlalu luas. Dan peningkatan kinerja bisa sangat peka konteks dan tidak dilakukan dalam ruang hampa.
mpdonadio

Jawaban:

26

Ini adalah catatan dari pengalaman saya dan mungkin berbeda dari apa yang orang lain alami. Saya terutama menggunakan tumpukan LAMP dan telah mempertimbangkan hal yang sama dalam saran saya.

Aturan jempol untuk caching yang biasanya saya ikuti.

  1. Proses Sekali Gunakan Beberapa Kali.
  2. Hidup dengan data basi jika memungkinkan
  3. Hapus Cache jarang dan pertahankan sangat spesifik.
  4. Bila memungkinkan lakukan perubahan pada level terendah di stack. LAMP - DCCc: Linux, Apache, Mysql, PHP, Drupal Core, Contrib dan modul kustom.

Meningkatkan Kinerja Situs Drupal (Dalam urutan kompleksitas yang meningkat)

  1. Biarkan inti diperbarui, modul kontrib dan tema diperbarui. Ya itu penting.

  2. Instal APC di server Anda. (Pindah ke atas berdasarkan saran dari Letharion)

  3. Caching Halaman: admin / config / pengembangan / kinerja Perbedaan antara masa hidup cache minimum dan Kadaluarsa halaman yang di-cache

  4. Blokir Caching https://drupal.org/project/blockcache_alter Opsi cache untuk semua blok.
  5. Agregat file javascript dan css - Perbaikan Ujung Depan https://www.drupal.org/project/advagg
  6. Nonaktifkan modul yang tidak perlu. Setiap modul menambah jumlah kode yang perlu tersedia untuk memuat halaman. Dan itu juga meningkatkan jumlah pencarian. Jika memungkinkan, gunakan modul generik sebagai pengganti beberapa modul yang melakukan fungsi khusus.
  7. Konten Tampilan Cache - Cache sadar konten untuk Tampilan https://www.drupal.org/project/views_content_cache
  8. Nonaktifkan DB logging - Gunakan https://drupal.org/project/syslog_ng
  9. Kurangi 404 Kesalahan - http://www.brokenlinkcheck.com/
  10. Respons Cepat 404 - https://drupal.org/project/fast_404 - Cobalah menangani di tingkat server.
  11. Validasi Sisi Klien - https://www.drupal.org/project/clientside_validation
  12. Compress Image - https://www.drupal.org/project/imageapi_optimize
  13. Pemuatan Gambar Malas - Jangan memuat gambar yang tidak perlu - https://www.drupal.org/project/lazyloader
  14. Gunakan Sprite Sheets - https://www.drupal.org/project/spritesheets

  15. Setel Nilai Waktu Seumur Hidup Cache Minimum ke angka yang lebih tinggi dan gunakan modul pembersihan cache untuk menghapus cache untuk halaman tertentu - Setiap kali saya mengedit / memperbarui sebuah node, semua cache halaman untuk pengguna anonim hilang

  16. Gunakan Devel Module untuk menonton pertanyaan.
  17. Tulis ulang Tampilan Pertanyaan / hindari Tampilan jika ini adalah kerja keras.
  18. XHProf - https://www.drupal.org/project/XHProf
  19. FPM, HHVM.
  20. Profiling dan Tuning DB - https://www.drupal.org/project/dbtuner
  21. Gunakan Boost , jangan Bootstrap DB jika tidak diperlukan. https://drupal.org/project/boost Untuk sebagian besar situs kecil dan menengah, Peningkatan cukup baik dan Anda mungkin tidak memerlukan Reverse Proxies atau lebih.
  22. Gunakan CDN - https://www.drupal.org/project/cdn Mudah diatur.
  23. Jika tabel cache Anda sangat besar gunakan Memcached - Jika Anda dapat menginstal memcached dan mengatur RAM untuk itu, itu tidak serumit kedengarannya.
  24. Etags - Konfigurasikan Etag dengan benar. https://developer.yahoo.com/blogs/ydnfiveblog/high-performance-sites-rule-13-configure-etags-7211.html
  25. Gunakan Reverse Proxy Server - Varnish (setidaknya untuk aset). Membantu banyak jika sebagian besar pengguna Anda anonim.
  26. Transfer terkompresi - Mengaktifkan kompresi gzip
  27. Keep Alive - Gunakan Koneksi Persisten jika memungkinkan.
  28. JPEG Progresif -
  29. CACHING IN CODE - Blog Eaton mengagumkan. http://www.lullabot.com/blog/article/beginners-guide-caching-data-drupal-7
  30. Terapkan Pemanasan Cache - https://www.drupal.org/project/cache_warmer - Cache Warm the pages sebelum pengguna akhir mengkliknya.
  31. Master Slave DB Config - https://www.drupal.org/project/autoslave memudahkan Anda untuk mengaturnya.
  32. Database Clusters - /programming/1163216/database-cluster-and-load-balancing
  33. Load Balancers - http://en.wikipedia.org/wiki/Load_balancing_(computing)
  34. Gunakan Pemanasan Cache heuristik - https://www.drupal.org/project/cache_graceful
  35. Caching Pengguna Terotentikasi - https://www.drupal.org/project/authcache
Gokul NK
sumber
2
Jawaban yang sangat bagus, tetapi satu hal yang sangat menonjol bagi saya, adalah bahwa Anda tidak memiliki APC di atas. APC secara sepele mudah untuk diterapkan, tidak ada sisi buruknya, dan keuntungannya bisa sangat besar. Saya pikir itu harus pergi ke atas. (Mungkin dengan komentar bahwa itu tidak diperlukan setelah PHP 5.5 karena optimasi akhirnya terintegrasi)
Letharion
1
Mungkin juga menyebutkan sesuatu tentang keuntungan paling mudah untuk caching? Jika sebagian besar situs Anda memerlukan konten statis (halaman sama untuk semua pengguna, jadi tidak ada login), maka Varnish atau Boost memberikan keuntungan terbesar.
Dominic Woodman
5

Lapisan basis data penting. Saya membahas beberapa bagian dan dasar-dasar dalam presentasi ini http://goo.gl/30yi39

mikeytown2
sumber
Presentasi yang luar biasa, MikeyTown. Anda adalah pro kinerja :)
Gokul NK
3

Sebagai pendamping jawaban Gokul, inilah cara saya berpikir tentang apa yang ingin Anda cache di Drupal (tidak dipesan oleh kompleksitas):

Caching berarti mempercepat aktivitas berulang.

Tindakan berulang besar yang terlibat dalam situs web Drupal adalah:

  • Memanggil halaman web
  • Menjalankan kode PHP untuk membangun halaman web
  • Item panggilan PHP dari database

Caching seluruh halaman web

Keuntungan cache terbesar bisa didapat dari menemukan cara untuk me-cache seluruh halaman web tanpa pernah menjalankan kode PHP atau memanggil database.

Anda dapat melakukan ini dengan Varnish atau Boost . Ketika seorang pengguna memanggil halaman mereka mengembalikan salinan halaman tanpa pernah melakukan perhitungan.

Namun ini tidak akan berfungsi jika bagian halaman harus berbeda (yaitu pengguna masuk dan namanya muncul di bagian atas).

Untuk menjalankannya, Anda perlu memeriksa Authcache.

Caching PHP

Anda dapat melakukan cache PHP dengan APC , atau jika Anda memiliki versi 5.5 atau lebih besar maka dibangun cache yang berbeda.

Ini dilakukan sisi server dan berarti potongan kode PHP Anda akan diingat. Anda men-cache PHP untuk Drupal tetapi Anda tidak berinteraksi secara teknis dengan Drupal.

Caching Basis Data

Panggilan untuk mengambil informasi dari database itu mahal.

Mekanisme caching basis data yang paling umum adalah memcache .

Ini cache objek database dalam RAM, jadi alih-alih membuat panggilan ke objek database pada harddisk, Anda hanya menariknya dari RAM yang jauh lebih cepat.

Dominic Woodman
sumber
1
Redis juga merupakan toko cache memori yang hebat, setidaknya sebanding dengan memcache dalam pengalaman saya (meskipun memcache mungkin menang dengan pengelompokan)
Clive