29Jul

Web Sunucuları Yeni İstekler İçin Nasıl Dinlenir?

Web sunucuları ve işleyişi hakkında bilgi edindiğinde, isteklerini sürekli dinleyip beklemediklerini veya harekete geçmek için bir istek aldıklarını bekleyip edemeyeceğini merak ediyor olabilirsiniz. Bunu aklımızda tutarsak, günümüzün Süper Kullanıcı Q & A post'unda okuyucunun merakını giderecek cevaplar var.

Bugünkü Soru &Yanıt oturumu bize Q & A web sitelerinin topluluk temelli bir gruplandırması olan Stack Exchange'in bir alt bölümü olan SuperUser nezaketen geliyor.

Ekran görüntüsü, xmodulo / Linux Ekran görüntüleri( Flickr) nezaketinde.

Soru

SuperUser okuyucu user2202911, web sunucularının yeni istekleri nasıl dinlediğini bilmek istiyor:

Web sunucularının nasıl çalıştığıyla ilgili 'daha derin' ayrıntılarını anlamaya çalışıyorum.Örneğin, Apache'nin söylediği gibi bir sunucunun sürekli olarak yeni istekler için yoklama yapıp kullanmadığını veya bir tür kesme sistemi ile çalışıp çalışmadığını bilmek istiyorum. Eğer bir kesme ise, kesmeyi kışkırtan nedir? Ağ kartı sürücüsü var mı?

Bir web sunucusu yeni istekleri nasıl dinler?

Cevap

SuperUser katılımcısı Greg Bowser bize cevap veriyor:

Kısa cevap, bir tür kesme sistemidir. Esasen, yeni veri beklerken uyku( blok) yaptıkları anlamına gelen bloklama G / Ç kullanırlar.

  1. Sunucu bir dinleme yuvası oluşturur ve sonra yeni bağlantıları beklerken bloklar. Bu süre zarfında, çekirdek süreci bir kesilebilir uyku durumuna sokar ve diğer işlemleri çalıştırır. Bu önemli bir noktadır;Süreç yoklamasını sürekli olarak yapmak CPU kaynaklarını boşa harcayacaktır.Çekirdek, işlemi yapana kadar süreci engelleyerek sistem kaynaklarını daha verimli kullanabilir.
  2. Ağda yeni veriler geldiğinde, ağ kartı kesme işlemi yapar.
  3. Ağ kartından bir kesintinin olduğunu gören çekirdek, ağ kartı sürücüsü vasıtasıyla yeni verileri ağ kartından okur ve belleğe kaydeder.(Bu hızlı bir şekilde yapılmalı ve genellikle kesme işleyici içinde ele alınmalıdır.)
  4. Çekirdek yeni gelen verileri işler ve bir soketle ilişkilendirir. Bu yuvada engelleyen bir işlem çalıştırılabilir olarak işaretlenecek, yani çalışmaya uygun olduğu anlamına geliyor. Mutlaka hemen çalıştırılmaz( çekirdek hala diğer işlemleri çalıştırmaya karar verebilir).
  5. Boşta, çekirdek engellenen web sunucusu işlemini uyandıracaktır.(Artık çalıştırılabilir olduğu için.)
  6. Web sunucusu işlemi hiçbir zaman geçmemiş gibi yürütülmeye devam eder. Engelleme sistemi çağrısı geri döner ve yeni verileri işler. Sonra 1. adıma geçin.

Açıklamaya eklemek için bir şey mi var? Yorumların sesini kapatın. Diğer teknik uzman Stack Exchange kullanıcılarından daha fazla cevap okumak ister misiniz? Buradaki tam tartışma dizinine göz atın.