Nasıl benim PHP komut dosyası sunucu meşgul olup olmadığını söyleyebilir?

4 Cevap php

Ben CPU ve MySQL kaynakların bir sürü alır temizliği yapar, bir cron işi çalıştırmak istiyorum. Ben sunucu nispeten meşgul olup yalnızca çalıştırmak istiyorum.

PHP olduğunu belirlemek için en basit yolu nedir? (Örneğin, son dakikada yapılan kaç sorguları döndüren bir sorgu var mı? ...)

4 Cevap

if (function_exists('sys_getloadavg')) {
    $load = sys_getloadavg();
    if ($load[0] > 80) {
       header('HTTP/1.1 503 Too busy, try again later');
       die('Server too busy. Please try again later.');
    }
}

Ihtiyaçlarınıza bu işlevi güncellemeyi deneyin

Linux'ta Eğer /proc/loadavg dosyadan yük alabilirsiniz.

$load = split(' ',file_get_contents('/proc/loadavg'))
$loadAvg = $load[0]

Bu Unix bir sistemse, uptime çıkışını ayrıştırmak. Bu genellikle iyi bir önlem olarak kabul edilir CPU yükü gösterir "meşgul." Yakınında veya üzerinde bir şey 1.0 "tamamen meşgul." Anlamına gelir

Üç CPU "yük" kat fazla çıktı, 1 üzerinde 5 yük ortalama vererek, 15 dakika vardır. Lütfen komut için mantıklı hangisi almak. "Yük" tanımı is here.

Muhtemelen uyku, DB üzerinde yük hakkında iyi bir gösterge vs aktif kaç görmek için Mysql List Processes işlevi bilgi kullanabilirsiniz.

Linux üzerinde iseniz genel sistem yükü görmek için Sys GetLoadAvg işlevini kullanabilirsiniz.