Süreçlerin sayısını sınırlamak nasıl?

0 Cevap php

Benim PHP web uygulaması, ben (örneğin, imagemagick bulunuyor 'dönüştürmek' komutu) çalıştırın CPU / bellek yoğun işlemlerin sayısını sınırlamak için çalışıyorum. Ben potansiyel olarak bu CPU / bellek yoğun işlemlerin çok örneklerini yürütebilir çeşitli komut dosyalarını yürütmek Crons işleri bir dizi var.

Bu tür süreçleri sınırlamak için benim girişimi, ilk benim sistem zaten süreçlerin belirli sayıda çalışıp çalışmadığını görmek için kontrol edin. Fonksiyonu:

function has_reached_process_limit($process, $limit)
{
    $command = 'ps -eo comm | grep ' . $process;
    exec($command, $output, $return);
    if (count($output) > $limit)
    {
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}   

Yani, böyle bir şey çalıştırın:

while (has_reached_process_limit('convert', 5) === TRUE)
{
   // loop over
}

Sorun '(üst' komutu yoluyla) kaynaklarını benim OS izlediğinizde, ben çalışan bekliyoruz olandan bir LOT daha süreçleri görmek olmasıdır. Herhangi bir fikir neden?

0 Cevap