Trafikte büyük bir artışa hazırlanıyor


35

Şirketimiz bu hafta birinci sınıf bir TV şovunda görünecek ve web sitemizde aynı anda yaklaşık 200.000 ziyaretçi bekleyebileceğimizi söylediler.

Normalde günde sadece 100 ziyaret alıyoruz, bu yüzden bu kadar trafiği kaldırabilir miyiz bilmiyorum. Tarafından barındırılıyoruz 1and1.co.uk.

Sitemizin sakat kalmaması için alabileceğimiz herhangi bir önlem var mı?


3
Bunu okudun mu? CloudFlare gibi bir hizmetin statik varlıkları minimumda işlemesini sağlamanızı kesinlikle tavsiye ederim. webmasters.stackexchange.com/questions/14394/…
richhallstoke

10
1and1.co.uk ile en kısa sürede konuşmalısın! web sitenizi oradaki VPS servislerinden birine, yüksek cpu / ram / bant genişliği oranına sahip bir ürüne götürebilirler! daha sonra para kazanmak için CPU / RAM'i azaltabilirler
Simon Hayter

1
1 & 1 ile paylaşılan bir hosting planında mısınız? Öyleyse gerçekten alternatif bir çözüme ihtiyacınız var (Çok güçlü VPS veya bulut tabanlı barındırma). Paylaşılan herhangi bir barındırma ortamının bu tür bir trafiği kaldırabileceğinden şüpheliyim.
Sean

3
Eskiden bir web sunucusu oldum. Çoğu ev sahibi, önceden bildikleri takdirde ani bir şekilde bu tür sivri uçları idare edebilir ve normalde sunulmayan seçeneklerin tümü için size yardımcı olabilir. Bunun nedeni basit. Büyük olasılıkla donanım önbellekleri, ekstra sunucular, yük dengeleme seçenekleri, başarısızlık seçenekleri, vb. Gibi ekipmanlara sahipler. Fikir, her şeyi zarif bir şekilde idare edebilecekmiş gibi görünmek. İş için iyidir. Çoğu, bu seçenekleri ücretsiz olarak ayarlayacaktır. Aslında işin normal bir parçası.
closetnoc

Ağır sunucu yükünü test etmek için araçlar olduğunu bilmek istersiniz. İsmi ile hiçbir şey bilmiyorum, ama kolayca takılabilirler. Ayarları yükseltin ve gerçek insanlar ortaya çıktığında kendinize kontrollü bir deneme sürüşü verebilirsiniz :)
Martijn

Yanıtlar:


26

Yüksek trafik döneminde sunucunuz, ziyaretçilerin web sitenize yaptığı tüm talepleri yerine getirebilmelidir. Ancak sunucu tarafından yönetilen eşzamanlı bağlantılarda bazı sınırlamalar vardır. Bu nedenle, sayfa isteklerini olabildiğince hızlı bir şekilde sunmak en iyisidir.

İşte bu durumlarda göz önünde bulundurulması gereken bazı öneriler,

Uygulama düzeyinde iyileştirmeler:

1. Sayfa Yükleme Sürelerini Hızlandırmak için HTTP İsteklerini En Aza İndirin.

a) Tüm JS dosyalarını tek bir kombine JS dosyasında ve tüm CSS dosyalarını tek bir kombine CSS dosyasında birleştirin.

b) JS ve CSS dosyalarını küçültün, böylece dosya boyutu küçülecek ve daha hızlı indirilecektir.

c) CSS Sprite'ları Kullanın - Resimlerinizin çoğunu veya tümünü bir grafiğe birleştirdiğinizde, birden fazla görüntü isteğini yalnızca bir tanesine dönüştürürsünüz. Ardından ihtiyacınız olan görüntünün bölümünü görüntülemek için yalnızca arka plan görüntüsü CSS özelliğini kullanın.

d) Tembel yükleme ile görüntü indirme gecikmesi, bu http isteklerini azaltmak için yararlı olacaktır.

2. Daha fazla ziyaret bekleyen hafif sayfalar hazırlayın:

a) Resimler veya Flash gibi dekoratif unsurları mümkün olduğunca hariç tutun; site gezintisindeki ve kromdaki resimler yerine metin kullanın ve içeriğin çoğunu HTML'ye yerleştirin.

b) Dinamik sayfalar yerine statik HTML sayfaları kullanın; sonuncusu sunucularınıza daha fazla yük yerleştirin. Sunucu yükünü azaltmak için dinamik sayfaların statik çıktısını önbelleğe alabilirsiniz.


Sunucu düzeyinde geliştirmeler:

1. Barındırma sağlayıcınıza danışarak sunucu zaman aşımı değerlerini azaltın (çok düşük olmamalıdır).

Zaman aşımları azaldığında, bağlantı yakında yayınlanacak, böylece sunucu daha fazla bağlantı yapabilecek.

2. Statik veri önbelleklemesi için CloudFlare gibi üçüncü taraf servislerini kullanın ve web sitenizi kötü niyetli kullanıcılardan ve DDOS gibi saldırılardan korumak için kullanın.

3. Sunucu donanımınızı yükseltin - Gerekirse fiziksel ve Sanal anılarınızı yükseltin, G / Ç ve Giriş işlemleri sınırlarını yükseltin. Hosting sağlayıcınız size daha iyi yardımcı olabilir.

4. Dinamik kod önbellek - PHP işlem kodunu önbelleğe almak için APC kullanın.

5. Yük Dengeleme - Yükü birden fazla yük dengeleme sunucusuna dağıtın.


  • Gerekli tüm işlemler yapıldığında, şimdi web sitesinin büyük bir trafik artışı için hazır olup olmadığını kontrol etme zamanı.

    Simüle edilmiş trafik ile yük testi sağlayan loadimpact.com gibi bazı üçüncü taraf hizmetleri vardır. Analiz, web sitenizin ne kadar yük taşıyabileceğini ve neler geliştirilebileceğini anlamanıza yardımcı olacaktır.

  • Ayrıca, trafik sıkışıklığı döneminde, web sitesi yedekleme cronjobs vb. Gibi yüksek CPU kullanım işlemlerinden kaçının.


3
Bunların hepsi site ile ilgili şeyler ve mükemmel! Ancak, sunucunuza bir kerede 200.000 istek gelmemişse, bu yeterli olmayabilir. Önceki bir web sunucusu olarak, büyük bir donanım önbelleği koymak ve önbelleği yükleyen siteyi çalıştırmak isterdim. Ayrıca, bir proxy veya güvenlik duvarı kullanarak yük dengeleme uygulaması ve paylaşılması durumunda bile siteyi birkaç sunucuda çoğaltacağım. Bu genellikle yeterliydi. Çoğu insan en büyük şişe boynunun aslında HD I / O olduğunu anlamamaktadır. Belleğin arttırılması ve Apache ve MySQL önbelleği için kullanılması da gerçekten yardımcı olur.
Ocak'taki

2
cevabı geliştirmek için bekliyoruz! :)
Nikhil Supekar

1
Cevabını beğendim! Ben oy verdim. Lütfen kırılmayın. Sadece bir web barındırma bakış açısıyla birkaç şeyi belirtmek istedim. Sadece bir yorum. Slam değil. Yine, cevabınız mükemmel !! Sık sık ana makineyle bağlantı kurmayı öneriyorum çünkü bunlar zaman zaman ortaya çıkıyor ve ana bilgisayarın yapabileceği ve hiçbir maliyeti olmayan seçenekler yapabileceği seçenekler var. Çoğu ev sahibi ilgiden memnun! Benim için donanım zaten yerinde olduğundan basit bir işlemdi. Siteyi böyle bir etkinliğe hazırlamak çok uzun sürmezdi. ;-) Davet için teşekkürler.
Closetnoc

1
Alınan suç yok. Aslında deneyiminizi sunucu donanımıyla gerçekten kullanabiliriz.
Nikhil Supekar

1
Güven ağları araştırması dışında, on yıldan fazla bir süredir sektörden emekli oldum. Sevdiğim tek şey, G / Ç alt sisteminin çivilemesini azaltmak için Apache ve MySQL veya benzeri uygulamalar için önbellek yükseltmesi. Bunu burada yaptım ve gerçekten işe yarayabilir. Ayrıca destek deposundan beri sistemlerde çok fazla bellek hakkında uyarıyorum . takas dosyası (ve diğerleri) bakımı, daha yavaş olma eğilimindeki G / Ç taleplerini radikal bir şekilde artırabilir. Tatlı bir nokta var, ama o tatlı noktanın artık ne olduğunu bilmiyorum. Sanırım benden çok daha fazla uzmansın. ;-)
closetnoc

7

Her şeyden önce, Cloudflare'u tavsiye ederim. Ücretsiz bir temel hesap oluşturabilirsiniz ve trafiği, sunucu atlama sayısını en aza indirmek için yerel veri merkezleri üzerinden yönlendirir. Cloudflare aynı zamanda içeriği önbelleğe almak için harika ve DDOS korumasına sahip.

Bunun dışında, servis tabakanızdaki yağı azaltmayı deneyin. Kodunuzu ya da basitleştirilebilecek CPU yoğun bir mantığını dolduran aşırı derecede şişirilmiş veritabanı sorgularının olmadığından emin olun.

Ayrıca herhangi bir veritabanı sorgusunu önbelleğe almaya çalışın. Sorgu önbelleğe alma için bazı harika seçenekler Redis veya Memcache'dir. Derlenmemiş bir dil kullanıyorsanız OpCaching başka bir husustur.

Ancak, muhtemelen en önemlisi, statik içeriğinizi (ör. Css, js ve görüntüler) mümkün olduğu kadar optimize tutmaktır. Javascript'inizi küçültün, mümkünse hepsini bir dosyada birleştirin. Sitenize dahil edilen her dosyanın, son kullanıcıya ulaşmak için birkaç sunucu atlaması yapması gerektiğini unutmayın.

Görüntüleri sıkıştırarak ne kadar bant genişliği ve yükleme süresi kazanabileceğinizi de küçümsemeyin!

Son olarak, New Relic gibi araçlarla izleme performansını göz önünde bulundurun.

İyi şanslar!!

Kaynak: Alexa'ya göre, İngiltere'deki en popüler 12. sitenin geliştiricilerinden biri.


5

Sitenizi test etmeyi düşünün. Sitenize çok sayıda ziyaretçi taklit edebilen JMeter , The Grinder ve Gatling gibi ücretsiz araçlar bulunmaktadır .

Yoğun trafiğin etkisini vaktinden önce test ederek, yaptığınız herhangi bir ayarlamanın etkili olup olmadığını belirleyebilir ve daha sonra ayarlamaya bakabilirsiniz.


3

1and1 kullanıyorsanız, büyük olasılıkla ucuz hosting arıyoruz. Ucuz hosting demek, tek bir kutunun altındaki her şeyi yapmaya meyillidir. Barındırma için önemli bir acı noktası, her şeyi aynı kutuda barındırdığınızda, kaynakları sitenizin önemli bölümlerine ayırmanızdır:

  • Web sunucunuz (Apache, Nginx, vb.)
  • Veritabanınız (MySQL, PostGreSQL, vb.)

Ve 1 ve 1 olarak Plesk veya cPanel gibi bir kontrol panelini kullanma şansınız var, bu da kaynaklar için rekabet eden fazladan bir şeyler katmanınız olduğu anlamına gelir. Ve tabutundaki son çivi? Çok fazla kaynağınız yok. Belki 1 CPU (veya sanal bir CPU) ve çok az RAM'iniz var (eğer 2GB'tan büyükse şaşırırım).

1 ve 1'i bıraktığımızda ölçeklenebilir bir barındırma sağlayıcısına gittik (bizim durumumuzda Amazon İnternet Servisleri) ve daha önce yapamadığımız birkaç şey yaptık.

  1. Amazon'un veritabanları için kendi örnekleri vardır (RDS) ve bu nedenle veritabanımız nefes alacak kaynaklara sahiptir. RDBMS sistemlerinin çoğu RAM'de yaşıyor ve nefes alıyor ve bu da bolca alabileceğimiz bir şeydi. Artık SSD'leri de yüksek G / Ç ile sağlayabilirsiniz, böylece diğer DB boğulma noktası (veri yazma) daha az acı verici olur.
  2. 2 web sunuculu bir yük dengeleyicimiz var. Sağlam bir DB arka ucunda yüksek uç ön uçlara ihtiyaç duymadığımız için iki alt uç sunucuya sahip olduk.
  3. İsteğe bağlı olarak tam yapılandırılmış makineler getirebilecek bir şeye geçtik. Chef veya Kukla gibi bir şey kullanarak, kolayca yeni web sunucuları ekleyebilirsiniz ve doğru yapılırsa son kullanıcılarınız için% 100 şeffaftır. Ayrıca AWS'de Opsworks vardır, böylece komut dosyalarınızı doğrudan AWS'ye yerleştirebilirsiniz .
  4. Talep üzerine örnek büyüklüğünüzü değiştirin. Bu bizim için önemli bir parça. Eğer DB çökerse onu indirebilir ve birkaç dakika içinde daha büyük bir tane olarak yeniden başlatabilirim. Evet, aksama süresini içerecektir, ancak birkaç dakikalık aksama süresi, korkunç derecede yavaş bir saate ait saatlerden daha iyidir. Kesinti tamamen korkuyor? Kanatlarda okunan bir kopya bulundurun, sonra aşağı indirin, daha büyük bir örneğe geçin, ustalaşmaya yükseltin ve fazladan bir makinenin maliyeti için herhangi bir kesinti olmasını önleyin.

AWS şehirdeki tek oyun değil (Azure, Rackspace, vb.) Ancak 1 ve 1'in talebinizi karşılamak için ölçeklendirildiğinden emin olun.


1

ISS'nize danışın ve bant genişliğinizde bir kapak olup olmadığına bakın. Bant genişliği beklediğiniz trafik miktarı için yeterli değilse, barındırma planınızı yükseltin. Ziyaretçilerinize bir "Bant Genişliği Sınırı Aşıldı" mesajı göstermek istemezsiniz.


1

Kişisel deneyimlerime göre, en iyi VPS'nin bile sınırlamaları olduğunu biliyordum. Ben burada gerçek yatmana gidiyorum.

Spor web sitemizden biri bir VPS'ye ev sahipliği yaptı. Pakistan ile Hindistan arasındaki bir maçta 70.000'in üzerinde hit aldık. 4GB RAM ve 2. GHz işleme, 1 TB bant genişliği, SSD depolama ve beraberinde gelen diğer güzel şeylere sahip bir Inmotinghosting VPS vardı. Ayrıca Cloudflare'in ücretli bir sürümünü de etkinleştirdik.

Maçın tam yarısı oldu ve web sitesi düştü. Maç boyunca hiç canlı olmadı ve potansiyel olarak 70.000'den fazla ziyaretçi kaybettik. Daha sonra bant genişliğimizin tüketildiğini biliyorduk ve kaynak ana bilgisayarı çalışmadığında CDN çoğu zaman işe yaramaz hale geldi.

Ders: VPS almanın ve Cloudflare gibi bir CND'yi ayarlamanın yanı sıra, sayfa boyutunu küçültün. Ne kadar azsa o kadar iyidir. Trafiği işlemede oldukça kullanışlı olan sayfa önbelleği ve kod küçültmesini kullanabilirsiniz.


1

"Bir kerede hepsini" çok iyi tanımlamamışsınız. Diyelim ki yarım saat içinde 200.000 tekil ziyaretçiye bakıyorsunuz. Saniyede 111 istek var, tıklayan ve daha fazla sayfa açan (dikkate değer değil mi?) Gelen ziyaretçiler hesaba katılmaz.

Yapacağım ilk şey, Google’ın benzer miktarda trafikle uğraşan insanlarla ilgili hikayeleri. Birçok insan bloglarına, deneyimlerini hakkında başkalarına yardım etmek için yazacak. Bunu paylaşılan barındırmada yapan biri hakkında bir hikaye bulmanın son derece zor olduğunu fark edeceksiniz ve bunun bir nedeni var. Hedef kitlenize en yakın veri merkezini kullanarak yeni başlayanlar için Dijital Okyanus veya Amazon İnternet Servisleri gibi çözümlere göz atın. Ve tüm statik kaynaklarınızı CloudFlare'ye, hatta bedava bir hesaba boşaltmanın mükemmel bir fikir olduğunu kabul ediyorum.

Bunun yanı sıra, dinamik olduklarını düşünerek sayfalarınızın üstüne ve altına zamanlama komut dosyaları ekleyerek kodunuzu test edin. Sayılarla ilgili varsayımımın doğru olduğunu kabul edersek, her türlü kabul edilebilir performansı korumak için her bir sayfayı 10 milisaniyeden daha az bir sürede sunmanız gerekir. Varsayılan olarak tüm istekleri SSL üzerinden sunuyorsanız, fırtına geçerken bunu birkaç gün için devre dışı bırakın.

Ayrıca, 200.000 kulağa çok korkutucu geliyor, ancak çok korkmanıza gerek olmadığını unutmayın (biraz olmasanız da). Örneğin, Paper dergisi Kim Kardashian'ın NSFW fotoğraflarını yayınladığında, bu yazıya (SFW) göre yükü ele almak için sadece dört orta boy web sunucusu ve Amazon ELB aldı . Kesinlikle şu anki kurulumunuzun işleyeceğini düşünmüyorum, ancak her biri kendi küçük nükleer jeneratörleri tarafından çalıştırılan 48 çekirdeğe sahip on altı web sunucusuna tam olarak ihtiyacınız olmamalı.


1

Bu eski, ama çok iyi bir soru biliyorum ve birkaç yıl önce konu hakkında iyi bilgi sahibi olmayı diliyorum ...

Zaman zaman TV ağlarında bulunan (okul etkinlikleriyle ilgili) sitelerimiz var. Çok sıkı bir bütçeyle faaliyet gösterdiğimiz için çözüm "yük dengeleme" dir. VPS kutuları bugünlerde oldukça ucuz olabilirdi ve içeriğimizin 2-3 tanesini yansıtıyoruz / kopyalıyoruz.

Bu makaleye bakın ve "round-robin" hakkında okuyun.

Yük testi hakkında daha fazla bilgiyi burada bulabilirsiniz .

Çivileri ele almaya ilk başladığımızda, içeriğimizi 2-3 VPS kutularına yerleştirdik ve NS'lerini kayıt şirketlerine yerleştirdik.



0

Web sitenizi yeniden yazma, sağlayıcıları değiştirme ve içeriği bir haftadan kısa bir sürede bir CDN'ye geçirme konusunda iyi şanslar.

Diğer cevaplardan fark etmiş olabileceğiniz gibi, bunlar sitenizi trafikte büyük bir artışa hazır hale getirmek için yapmanız gereken en az şeydir. Şu anda 1 ve 1.

Olması muhtemel değil, değil mi?

Web sitenizle neler yaptığınızı, alışveriş sepetini çalıştırıp çalıştırmadığını veya statik içerikle uygulanıp uygulanmayacağını söylemediniz. İkinci durum söz konusuysa, sitenin tamamını statik dosyalara kazıyıp normal sitenin yerinde yayınlarsanız (önce geçerli sürümü yedekleyin) tsunamiden kurtulabilirsiniz.

Ayrıca 1 ve 1'le de konuşmalısınız (kredi kartınız elindeyken).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.