Keep-Alive nedir ? Keep-Alive Ayarları nasıl yapılır
SlaweallyYönetici
2022-10-03 23:23:49 70 views
Keep-Alive nedir ? Keep-Alive Ayarları nasıl yapılır
[ATTACH type="full"]13[/ATTACH]
Web sunucusu yavaşlamalarını veya çökmelerini düzeltmekte zorlandıysanız, Apache için “Keep-Alive” adlı bir ayar ile karşılaşmış olabilirsiniz. Bu, apache’nin en güçlü ve sıklıkla yanlış kullanılan özelliklerinden biridir. Bu yazıda şunları açıklayacağız:
- Apache Keepalive / Keepalive Zaman Aşımı nedir?
- En iyi sunucu performansı için hangi yapılandırma en uygunudur?
- Bu yanlış ayarlandığında / varsayılanlarda bırakıldığında ne olur?
[ATTACH type="full"]12[/ATTACH]
CPanel’de Apache Keepalive Zaman Aşımı Ayarları
[FONT=georgia]Apache Keepalive nedir?[/FONT]
En iyi anlamak için, web sunucunuzu bir restoran gibi düşünün. Web sitesi ziyaretçileriniz müşterilerdir ve sunucu yazılımı personeldir. Sunucu yazılımı, istekleri karşılayabilen personel üyeleri için düşünebileceğiniz “sunucu yuvalarına” sahiptir. Tıpkı bir işletmenin sonsuz personeli olamayacağı gibi, web sunucunuz da yalnızca çok sayıda “yuvaya” sahip olabilir, çünkü her biri RAM ve işlemci süresini alır.
Ancak, personel üyelerinizden çok daha fazla müşteriniz olabilir, çünkü her müşterinin yalnızca ziyaretlerinde belirli zamanlarda yardıma ihtiyacı vardır – yemek siparişi verirken, çek için ödeme yaparken vb. Ayrıca, “sunucu yuvalarına” sahip olduğunuzdan çok daha fazla web sitesi ziyaretçisine sahip olabilirsiniz, çünkü çoğu zaman ziyaretçileriniz web sitenizi okur, resimlere bakar vb. Çoğu zaman, yeni bir sayfa talep etmek için bir şeye tıklıyorlar.
Peki Keepalive buraya nereden geliyor?
Birrestoranda sipariş verme sürecini hayal edin . Sunucunuz ne istediğinizi sorar, her öğeyi yazar ve yalnızca siparişi bitirdiğinizde ayrılır. Sunucunuz, istediğiniz her öğeden sonra siparişinizi vermek için mutfağa geri dönmez – bu çok verimsiz olur! Aynı zamanda, ne istediğinize karar vermekte güçlük çekiyorsanız, sunucu karar verdiğinizde daha sonra geri gelmeyi teklif edecektir – sipariş etmek istediğiniz her şeye karar vermenizi sonsuza kadar beklemiyorlar.
Canlı tutma ve canlı tutma zaman aşımları buna çok benzer. Bir web sayfası, web tarayıcınızın istemesi gereken birçok farklı şeyden oluşur. Metin, biçimlendirme bilgileri, reklamlar, resimler ve videolardan oluşan birçok dosya vardır. Canlı kalmazsa, web tarayıcınızın bu isteklerin her biri için sunucuyu “işaretlemesi” gerekir. Bu, işleri büyük ölçüde yavaşlatabilir. Boş yuva yoksa, bekleme süresi daha da uzun olabilir. Bunun yerine, canlı tutma, web tarayıcınızın sunucuyu yalnızca bir kez “işaretlemesine” ve ardından birçok farklı dosya ve resmi birbiri ardına sormasına olanak tanır. Tarayıcı yeni şeyler istemeyi bıraktığında, web sunucusu diğer ziyaretçilerin kullanması için “yuvayı” boşaltır. Canlı tutma zaman aşımı, web tarayıcısı yeni şeyler istemeyi bıraktıktan sonra yuvanın ne kadar süreyle dolu kalacağını belirler.
Umarım bu size Keepalive’ın ne olduğu ve Keepalive zaman aşımının neyi temsil ettiği konusunda bir fikir verir: bu, tek bir kullanıcının web tarayıcısının istekleri işlemek için kullanılabilen az sayıdaki sunucu “yuvalarından” birinin bölünmemiş dikkatini çektiği bir süredir.
En iyi sunucu performansı için hangi yapılandırma en uygunudur?
Kısa cevap:
- Canlı tutma açık olmalıdır
- Canlı tutma zaman aşımı 1 saniyeye ayarlanmalıdır
- Canlı tutma istekleri 100 veya daha fazla olmalıdır. Sınırsız genellikle iyidir.
Tıpkı bir sunucunun tatlıya karar vermeniz için bir saat beklememesi gibi, Apache gibi bir web sunucusu, web tarayıcınızın yeni dosyalar veya resimler istemesi için sonsuz bir süre beklemeyecektir. Ne yazık ki, bekleyeceği standart / varsayılan süre çok uzun.
Tek bir web sayfası, genellikle birkaç düzine dosya veya görüntüden oluşur ve yüklenmesi birkaç saniye sürer. Bir web sunucusunun tek bir isteği alıp işlemesi, örneğin tek bir görüntüyü yükleme süresi, tipik olarak 1 saniyenin 1 / 10’undan azdır. Canlı tutma zaman aşımı, geri sayan bir zamanlayıcıdır ve web tarayıcısı her yeni öğe istediğinde sıfırlanır. Tarayıcı daha fazla şey istemeye devam ettiği sürece, 1 saniyelik canlı tutma zaman aşımı ayarıyla bile zaman aşımı sona ermeyecektir.
Ancak Apache Keepalive Timeout için varsayılan ayar 15 saniyedir. Bilgisayar açısından bu bir sonsuzluktur. Bir web sayfasının yüklenmesi 2 saniye sürerse, alan 2 saniye boyunca etkindir, istekleri sunar ve ardından 15 saniye daha uzun bekler ve kullanıcının başka bir şeye ihtiyacı olup olmadığını görmek için bekler. Kullanıcı bu 15 saniye içinde herhangi bir şeyi tıklamazsa veya yeni bir şey yüklemeye çalışmazsa, yuva hiçbir ziyaretçi için yararlı bir iş yapamaz. Bu değerli slotlardan birini alacak kadar şanslıysanız – ve tutun – ikinci sayfanızı saniyenin 1 / 10’u kadar daha hızlı yükleyebilirsiniz. Bunun nedeni, az bir süre alan sunucuya yeni bir bağlantı açmanıza gerek olmamasıdır.
Ancak bu, ilk etapta bir yuvaya erişmek için çok uzun bir süre beklemek zorunda kalmanın pahasına – büyük olasılıkla, bir garson, yemeğinizi teslim ettikten sonra, başka birine yardım etmeye çalışmadan önce başka bir şeye ihtiyacınız olup olmadığını görmek için 15 dakika bekleseydi sanki. 1 dakika (bir garson için) veya 1 saniye (bir web sunucusu için) bile gerekenden daha uzun, ancak en azından tam bir felaket olmayacaktır. 1 saniyelik canlı tutma zaman aşımıyla bile (ayarlayabileceğiniz minimum süre), bir web tarayıcısının sayfayı yüklediği süre boyunca aynı bağlantı yuvasını tutabileceği neredeyse garantilidir. Hemen hemen her zaman 1 saniyeden daha uzun süre canlı tutmak için hiçbir neden yoktur.
Canlı tutma yanlış ayarlandığında veya varsayılanlarda bırakıldığında ne olur?
Tek kelimeyle: felaket.
Garsonumuzun yemeğinizi bıraktığını ve başka bir iş yapmadan önce 15 dakika beklediğini hayal edin. Normalde bu, restoranın (veya web sunucusunun) durmasına neden olur. Hiç kimse bir garsonu siparişini alması için işaretleyemezdi. Hazır yiyecekler alınmayı beklerken soğurdu.
Diyelim ki restoran müdürü o gün çalışmak için daha fazla garson planlayarak bu sorunu çözüyor. Bunun iki katı sorunu var. Bir, bu çok pahalı. İki, restoranda, otoparkta, mola odasında, vb. Her masa için bir sunucuyu işlemek için yeterli fiziksel alan yok. Sunucular ve personel, herhangi bir yere gitmeye çalışırken birbirlerine takılıp kalırlardı ve sunucular, yardımcı oldukları bir seferde yalnızca bir masaları varsa, bahşişlerden çok az şey kazanırlar.
Durum bir web sunucusu için çok farklı değil. Bu sorunu çözmek için bağlantı yuvalarının sayısını artırırsanız, kısa süre içinde ciddi sorunlarla karşılaşacaksınız. Her bağlantı yuvası ram kullanır. Aynı kullanıcılar için çok daha fazla yuvaya ihtiyaç duyan sunucunuz kolayca ramsız kalabilir ve çökebilir. Ayrıca, bilgisayarlarda “bağlam değiştirme” adı verilen bir sorun var. Basitçe, her yuva bir programdır ve bir programdan diğerine geçiş, bir bilgisayar için pahalı bir işlemdir. 200 yerine 1000 programın çalışmasına ihtiyacınız varsa, aralarında geçiş yapmak için harcanan zaman, bu programların fiili iş yapmak için harcadıkları zamandan daha fazla işlemci süresi kullanmaya başlar. Bol miktarda ram ve bol işlem performansınız olsa bile bu çok ciddi bir sorun olabilir.
Önceki örneğimize bakın: Bir web sayfasının yüklenmesi 2 saniye sürer.
Bir senaryoda, 1 saniyelik bir tutma, daha sonra, belirli bir yuva 2 saniye çalışıyor ve 1 saniye boşta kalıyor. Görüntülenen her sayfa için toplam 3 saniye kullanılır.
İkinci senaryoda (varsayılan yapılandırma), 15 saniyelik bir tutma, ardından, belirli bir yuva 2 saniye çalışıyor ve 15 saniye boşta kalıyor. Görüntülenen her sayfa için toplam 17 saniye kullanılır.
Bu, web sitenize belirli sayıda ziyaretçi için gereken bağlantı yuvası sayısının yaklaşık 6 katıdır! Bu, 6 kat ram ve 6 kat daha fazla içerik değiştirme anlamına gelir. Bu, bir web sunucusunu kolayca çökertebilir. Ya da, Apache’nin oluşturabileceği bağlantı yuvalarının sayısı için yeterince düşük bir sınır belirlediyseniz, farklı bir sorununuz var: Ziyaretçilerin, sunucuda epey bir zamana sahip olmasına rağmen, web sitenizi görüntülemek için saçma bir süre beklemesi gerekir. ek ziyaretçileri işlemek için yedek CPU kapasitesi.
Sonuç oldukça basittir – Apache Keepalive Timeout’u varsayılan değeri olan 15 saniyede tutmak, 1 saniyeye ayarlamaktan 6 kat daha fazla ram kullanacaktır.
Bu arada, yeterli ramınız olsa bile kullanıcılara hiçbir faydası yoktur. Son olarak, makul sayıda ziyaretçiye sahip herhangi bir web sunucusu için web sitesi güvenilirliği ve performansı büyük ölçüde zarar görecektir.
Kaçırdıysanız, işte Apache Keepalive ve Keepalive Zaman Aşımı için en uygun ayarlar:
- Canlı tutma açık olmalıdır
- Canlı tutma zaman aşımı 1 saniyeye ayarlanmalıdır
- Canlı tutma istekleri 100 veya daha fazla olmalıdır. Sınırsız genellikle iyidir.
edit: Apache için varsayılan Keepalive Timeout artık 5 saniye gibi görünüyor ve artık en azından cPanel’de 15 saniye değil. Dolayısıyla, onu temerrüde bırakma sorununun ölçeği, eskisinden daha azdır. Yine de, bu varsayılan 5 saniye optimal değildir. 1 saniye, en iyi ve en uygun Kalma Zaman Aşımı ayarı olarak kalır.
Yazdığımız şeyler bizi temsil eder, Efendilik iyidir.
