Jawaban Markdorison pada dasarnya adalah metode yang diterima untuk menyerang masalah ini. Saya akan mengambil sedikit lebih jauh.
Ketika Anda memiliki Pressflow untuk D6 atau Drupal untuk D7, Memcached dan Varnish semua bekerja dengan baik bersama-sama Anda harus mengkustomisasi file VCL Anda . Ada yang gratis tersedia yang membuat poin awal tetapi Anda selalu perlu bermain dengannya.
Agar Varnish bekerja secara optimal, pastikan Anda memulainya dengan -s malloc xG daripada default -s file / path / to / file. Juga dengan Varnish memiliki item statis cache Varnish selama Anda bisa.
Jika Anda memiliki lebih dari satu server web, hapus ETag dari header yang dikirim ke Varnish di VCL. Saya juga menghapus Kedaluwarsa dan cukup mengandalkan Umur dan maks-usia di tajuk sehingga dapatkan peramban kembali ke situs.
Versi 1.5 (per 3 Maret 2011) masih merupakan versi tercepat dari modul Memcached dari Drupal.org. Saya biasanya menyebarkannya menggunakan satu nampan per server untuk menurunkan lalu lintas tcp untuk koneksi ke beberapa tempat sampah dalam skala besar)
Konfigurasikan caching di "Performance" ke eksternal dan atur usia maks yang akan mengirim header yang benar ke proxy caching seperti Varnish.
Jika Anda tidak bisa mendapatkan halaman tertentu untuk di-cache dengan benar di Varnish, periksa posting blog di web yang merinci cara memeriksa permintaan. Berikut adalah contoh tulisan yang saya tulis beberapa waktu lalu: Apa yang menghentikan Varnish dan Drupal Pressflow dari caching tampilan halaman pengguna anonim
Anda harus memilih InnoDB (atau salah satu dari itu nama lain dari penyedia lain seperti XtraDB) untuk MySQL dan memindahkan semua tabel ke dalamnya. Kemudian lihat posting blog ini untuk saran penyetelan dasar http://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/
Memiliki kolam penyangga yang besar pada dasarnya penting. Saat memuat pengujian situs, aktifkan log kueri lambat. Anda mungkin ingin menangkap query pada awalnya mengambil lebih dari 50msec kemudian tune query dan secara berulang-ulang mengurangi waktu penangkapan log lambat sampai Anda memiliki sebagian besar query berjalan menggunakan indeks, dan menjalankan cukup cepat.
Dasar-dasar lain melibatkan memiliki APC untuk PHP. Jika Anda menggunakan CGI cepat daripada mod_php, habiskan beberapa waktu untuk mencoba membuat cache APC dibagi di seluruh instance php dengan mengkonfigurasi skrip wrapper yang baik. Juga pastikan bahwa cache APC ada dalam file yang dipetakan untuk memeras setiap bit terakhir dari PHP.
Saya akan merekomendasikan mulai dengan Pressflow (jika menggunakan Drupal 6), Memcache , Varnish , dan beberapa bentuk Jaringan Distribusi Konten (CDN) seperti Akamai. Hasil akhirnya harus sesedikit mungkin dari pengguna yang benar-benar mengenai server asal Anda.
Jika Anda memiliki bagian halaman yang tidak dapat Anda cache untuk pengguna non-anonim (hal-hal yang khusus untuk pengguna itu, "Welcome userX" dll.), Anda dapat menjelajahi opsi untuk mengisi bagian-bagian halaman ini seperti asinkron. termasuk callback atau sisi tepi.
Jika Anda memiliki sekelompok kecil pengguna internal (seperti sekelompok editor) yang perlu dapat melihat versi situs yang tidak di-cache, saya akan merekomendasikan mengekspos versi situs yang tidak di-cache di URL yang berbeda (dilindungi di belakang VPN atau setara jika memungkinkan).
sumber
2500 hit per detik selama sehari - jika "hit" maksud Anda "halaman terkirim" maka itu 216 juta halaman sehari. Biarkan saya memberi tahu Anda ini: Anda tidak memiliki 216 juta halaman sehari. Saya suka klien ini ...
Yang mengatakan, data lalu lintas mentah tidak mengatakan apa-apa. Sementara saran di utas ini sangat bagus tentang Varnish / CDN jika semua yang Anda miliki adalah lalu lintas anonim tetapi jika Anda telah masuk lalu lintas, Anda menghadapi tantangan. Tetapi sebelum menghabiskan waktu dan upaya yang tidak saleh untuk menyelesaikan suatu masalah, pastikan Anda memiliki masalah. 2500 hit per detik, bing mendapat kurang dari itu, Anda menyadari itu, kan?
sumber
Sisi server
Sisi Kode
Basis data
sumber
Saya juga akan mendengarkan podcast Lullabot ini tentang cara mereka mengatur situs web Grammys.com untuk ledakan lalu lintas selama seminggu. Itu penjelasan yang cukup mendidik.
http://www.lullabot.com/podcasts/podcast-92-grammycom
sumber
Meskipun sangat sulit untuk memprediksi pola, jika Anda memiliki gagasan yang adil tentang tingkat lalu lintas. Uji beban solusi Anda. Ada sejumlah opsi yang berbeda dan banyak yang tidak akan dapat diprediksi sampai Anda memiliki lalu lintas langsung, tetapi jika Anda memuat tes sebanyak mungkin, setidaknya Anda akan memiliki tingkat kepercayaan yang adil bahwa pengaturan Anda dapat menangani lalu lintas.
Semua penyetelan di dunia tidak akan membantu jika Anda tidak mengujinya terlebih dahulu.
Ini adalah presentasi di DC SF tentang bagaimana ekonom melakukannya. http://sf2010.drupal.org/conference/sessions/performance-testing-economist-online-using-grinder
sumber
Untuk situs web dengan lalu lintas tinggi, Anda harus menggunakan beberapa server dan memuat penyeimbang atau hanya menggunakan CDN. Juga sangat penting untuk melakukan cache sebanyak mungkin untuk meminimalkan beban pada server web.
Menggunakan Content Delivery Network ( CDN ) membantu menyebarkan sumber daya melalui beberapa domain (domain sharding) yang mengurangi beban pada server web.
Menggunakan CDN membantu dengan caching terdistribusi dan akselerasi jarak jauh, juga membantu mengurangi serangan DDoS , karena beberapa titik akhir. Ini membantu dengan keamanan, karena konten yang di-cache lebih sulit untuk dieksploitasi.
Contoh penyedia: Cepat , Rackspace , Akamai , Azure, CloudFlare, Amazon, MaxCDN, Verizon.
Berikut beberapa saran lainnya:
ab
, JMeter untuk TTFB , pengujian beban dan stres pada aplikasi web Anda.Jadi arsitektur web Anda dari sudut pandang pengguna dapat terlihat seperti:
Untuk saran pengoptimalan Drupal, periksa: Bagaimana Anda meningkatkan kinerja Drupal?
sumber
Aktifkan dua ekstensi:
Performa Anda akan bekerja lebih baik.
Jika Anda ingin mencabut Zend OPcache dan Wincache di Microsoft Azure, pertama-tama buat nama folder '
ini
' di bawah 'D:\home\site\
'. Juga, buat 2 file, '.user.ini
' dan 'settings.ini
'Tambahkan konfigurasi berikut di setiap file:
.user.ini
setting.ini
Juga, tambahkan Pengaturan Aplikasi ke Aplikasi Web Anda dengan kunci
PHP_INI_SCAN_DIR
dan nilaid:\home\site\ini
Setelah mengubah PHP_INI_SYSTEM restart aplikasi web Anda. Jika ingin tahu lebih banyak tentang konfigurasi ranting, silakan periksa dokumentasi Microsoft .
Setelah pengaturan di atas, Drupal saya (Drupal 8.3) memuat situs dalam 3 detik.
sumber
Anda juga dapat memeriksa distribusi ulang beban pada beberapa server dengan bantuan solusi penyeimbangan beban berbasis DNS atau perangkat lunak / perangkat keras. Ini juga akan memanggang toleransi kesalahan.
sumber