KeepAlive etkinleştirilsin mi?


9

Yüksek trafikli Magento sitesi ile KeepAlive'in fikir birliği nedir? Çoğu insan bunu tavsiye ediyor gibi görünüyor ama Magento, Magento Enterprise Edition ile Performansı ve Ölçeklenebilirliği En Üst Düzeye Çıkarmada bıraktığını söylüyor

"Bir web sunucusu ağır yük altındayken, kalıcı bağlantıların saklanması dezavantajlı olur, bu nedenle KeepAlive yönergesi her zaman devre dışı bırakılmalıdır"

Düşünceler?

Yanıtlar:


4

Harika bir soru!

Geleneksel olarak, KeepAlive iyi bir şeydi çünkü bir sayfadaki birçok isteğin (tüm görüntüler, css, js gibi) bir sunucudan sunulduğu genel sayfa yükünün TCP ek yükünü önemli ölçüde azaltır. Sayfanızda 85 öğe varsa, bu 85 ekstra üç yönlü TCP el sıkışmasıdır ve gecikme süresi artar. Yıllar önce daha yavaş Internet bağlantıları ile, şimdi olduğundan çok daha önemliydi, ancak mobil tarayıcılar veya herhangi bir yavaş / yüksek gecikme bağlantısı için hala oldukça alakalı.

Burada bahsedilen etki, bu TCP bağlantılarının ne kadar süre açık tutulacağı ve bunun Apache alt işlemlerinizi çabucak tüketip tüketemeyeceği ile ilgilidir. Gördüğüm varsayılanların çoğu:

KeepAliveTimeOut 15
MaxClients 256

Bu, aynı 15 saniye içinde 256 farklı tarayıcımın içerik istemesi durumunda 257. istemcinin bağlantıların kesilmesini beklemesi gerektiği anlamına gelir. İyi değil - bu özellikle yüksek trafik değil, bu yüzden bu tavsiyeyi açıklıyor. Ayrıca MaxClients'ın başa çıkmasına neden olabilir, bu da çok fazla bellek yiyebilir. KeepAlives kullandığımda, genellikle KeepAliveTimeout'u 2 veya 3 saniyeye ayarlıyorum; tüm istekler için sürenin tamamı yerine istekler arasındaki boşta kalma süresidir.

KeepAlive kullanıyorsanız, KeepAliveTimeout, MaxClients ve sunucu kaynakları arasında bir dengeleme işlemi vardır. Buna yardımcı olmak için, bir 'hizmet httpd / apache2 fullstatus', KeepAlives tarafından herhangi bir zamanda kullanılan 'K' harfiyle gösterilen bağlantı sayısını gösterir.

Magento için KeepAlives'e ihtiyacınız olduğunu düşünmüyorum.

Ne gereken bir çok yüksek trafik Kurumsal site varsa yapıyor olması, statik içerik için CDN kullanıyor.

Birden fazla ülkede satış yapıyorsanız, CDN kullanmak yalnızca müşterileriniz için genel sayfa yüklerini hızlandırmakla kalmaz (bu da iyidir), ancak sunucunuza gelen bant genişliğini büyük ölçüde azaltır. Sistem> Config> Web> [Un] güvenli altındaki ayarlar, Medya, Dış Görünüm ve JavaScript için herhangi bir CDN'yi entegre etmeyi gerçekten önemsiz hale getirir. Bu, gerçek HTTP isteklerinin büyük kısmı olacaktır ve bonus olarak, ana bilgisayar adlarındaki indirmeleri paralel hale getirmek için farklı DNS kayıtlarını kullanabilirsiniz. Doğru yapıyorsanız, bu istekler sunucunuza neredeyse hiç dokunmaz, bu yüzden artık gerçek bir ihtiyaç yokturKeepAlive için. Bu durumda KA'yı devre dışı bırakmalısınız; içeriğin geri kalanının başka bir yerden sunulduğunu bildiğimizde bağlantıyı canlı tutmak istemiyoruz. Bağımsız bir CDN önerisi istiyorsanız: CloudFlare harika ve hatta ücretsiz paketle SSL atılıyor.

Bunun gibi bir CDN kullanırken veya başka bir tür ters proxy kullanıyorsanız (Vernik gibi), Apache HTTP KeepAlives'iniz temel olarak önemsizdir.

Özetlemek gerekirse, Apache işlemlerinizi yük altında doyurmaktan kaçınmak için muhtemelen KeepAlive'yi devre dışı bırakmanız gerektiğini kabul ediyorum , ancak sayfanızın yüklerini olabildiğince çabuk tutmak için varlıklar için kesinlikle bir CDN veya başka bir ters proxy kullanın.


1
Kalıntılar, bir CDN'den başlangıç ​​noktasından çekme sırasında hala geçerlidir. Etkinleştirme / devre dışı bırakma hafife alınmamalı ve kapsamlı bir şekilde test edilmelidir. Bir CDN'yi düşünmeden önce istekleri azaltmayı, varlıkları zayıflatmayı savunuyorum - yanlış yapılandırılmış, mağazaları daha hızlı, daha yavaş hale getirebilirler.
Ben Lessani - Sonassi

XAMPP sunucusu için bu kalıcı ayar yerel sistemi nasıl ayarlanır?
bhavin thummar
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.