Bagaimana situs besar meningkatkan dan mengoptimalkan lalu lintas besar? [Tutup]


8

Bagaimana situs seperti Facebook dan Twitter mengoptimalkan situs mereka untuk lalu lintas besar. Selain menghabiskan banyak uang untuk mendapatkan server terbaik, apa yang dapat dioptimalkan dalam kode Anda untuk mengakomodasi lalu lintas besar?

Saya telah membaca tentang caching halaman Anda ke HTML statis, tetapi itu tidak praktis untuk situs jejaring sosial di mana halaman-halaman tersebut terus diperbarui.


Jika Anda mendapatkan rata-rata 10.000 akses per detik, bahkan caching 1 detik akan menghemat 9999 pemrosesan skrip.

Anda mungkin tertarik pada ini juga (saya tidak dapat menemukan posting asli oleh pemilik SO): highscalability.com/blog/2009/8/5/…

Berikut ini adalah video dan presentasi yang menjelaskan beberapa hal yang dilakukan para insinyur di Facebook untuk ditingkatkan.
aufather

Jawaban:


14

Facebook adalah contoh beban yang ekstrem, tetapi secara umum, situs dengan lalu lintas tinggi:

  1. menggunakan jaringan pengiriman konten (CDN) untuk mendistribusikan aset statis (CSS dan JavaScript) dan media (gambar, video, dll.).
  2. gunakan cache dalam-memori seperti Memcached kapan pun memungkinkan untuk mengurangi beban pada database.
  3. memiliki penyeimbang beban yang mendistribusikan lalu lintas ke kumpulan server web
  4. cache menghasilkan fragmen HTML (mis. bagian dari halaman profil Anda) dan memasukkannya ketika menghasilkan respons penuh

1
+1 Tidak bisa mengatakannya dengan lebih baik. Untuk jaringan CDN, saya dapat menjamin untuk Amazon S3 + Cloudfront yang saya temukan berfungsi sangat baik untuk menyajikan konten statis. Untuk cache memori, periksa Redis juga.
Martin Wickman

Mengapa Facebook adalah contoh yang buruk?

Oh, itu tidak buruk; Saya hanya mengatakan bahwa sebagian besar situs web tidak akan pernah mengalami pemuatan di tingkat Facebook atau pengalaman Google.
Bill


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.