Php ile İzleme apache yük

3 Cevap php

Apache tüm cevap UPDATE: sayesinde verildi, ama onlar sistem yükü tüm ilgili değil.

Amacım apache bir yüksek yük var, benim php komut (çiftleşmiş olanlar) içinde, anlamak ve lighttpd bazı trafik çatal prefearrable olduğunu, burada sadece uzun yoklama ve apache yükünü ışık olmaktır.

Merhaba çocuklar, this question Ben istekleri bu tür forn apache ve veritabanı nuke için değil için, benim sunucu üzerinde uzun yoklama hizmet için lighttpd kullanmaya başladım sonra.

Öyleyse, i (görüntüler, css, js, ve) statik içeriğe de lighttpd kullanmaya başladı.

Yani, aslında, ben example.com apache tarafından sunulan ve polling.example.com lighttpd tarafından sunulan, hem veritabanı hit azaltmak için memcache kullanarak var.

Apache, ben example.com / yoklama / * polling.example.com / de * Tüm taleplerinizi proxy vekil modülü kurdum

Şimdi, apache bir yüksek yük varsa lighttpd bile diğer ajax isteklerini yönlendirmek için, php apache sunucu yükünü almak için bir yol olup olmadığını merak im.

Yani, gibi bir şey:

<?php
$apache_server_load = /*hot to retrieve this value?*/;
if($apache_server_load >= $my_defined_max_load){
    $ajax_domain = '/polling';
}else{
    $ajax_domain = '';
}
?>
<script>
    [...]
    $.ajax({
        url: '<?php echo $ajax_domain; ?>/mypage.php',
        [...]
    });
    [...]
</script>

Debian edit im koşu

ps: Ben .. İstersen yorum yapmaktan çekinmeyin bu çözüm güzel bir yaklaşım olabilir olmadığını da duymak gibi olacak, ama başka bir soru olurdu.

3 Cevap

mod_status bir göz atın. Eğer kurmak var sonra, talep ve ayrıştırmak isteyeceksiniz

http://example.com/server-status?auto

Muhtemelen oldukça içeri gelen her bir istek için aynı isteği yeniden yapmak yerine, en azından birkaç saniye için sonucu önbelleğe isterdim

Sen php fonksiyonunu sys_getloadavg() kullanarak genel sistem yükünü bulmak olabilir. Bu Apache veya lighttpd sunucu hakkında herhangi bir bilgi vermez ama size tüm sunucu üzerinde yük nasıl bir bakış alabilir.

Size sistem hakkında bir şey söylemedim. Ben Linux veya Unix kullanıyorsanız varsayarak yaşıyorum. Geçerli yük almak için en iyi yolu bazı durum ve yük ortalamaları ile bir satır verecek uptime sistemi komutu yürüterek gereğidir.

Bu kesin hesaplama sistemi bağımlı ve "yüksek yük" de gibi öylesine yük bir şey almak için (kaç çekirdek, uygulama IO veya CPU bağlıdır ...) sistem bağlı olduğu

preg_match("#load average: ([0-9\.]+), ([0-9\.]+), ([0-9\.]+)#", `uptime`, $matches);
print_r($matches);

hile yapabilir.