Nasıl CPU php güzel yapabilirim?

5 Cevap php

Ben (Site5 tarafından işletilen) paylaşılan * NIX sunucu üzerinde çalışan var. Ben arka plan bazen bazı çevrimdışı hesaplamalar yaparak çalışan bir php komut dosyası var. Bu çalışırken etrafında% 100 CPU kullanır. Ben böyle güzel,-ing denedim:

nice -n 19 php script.php

ama bu herhangi bir fark yaratmak için görünmüyor.

5 Cevap

Eğer kod ile (int $ micro_seconds) usleep serpebileceğimizi. Bu, diğer şeyler için ücretsiz CPU bırakarak zaman küçük tutarlar için durdurmak için komut zorlar.

Bu olsa gerekli olacaktır? Eğer komut düşük bir önceliğe sahipse, onu daha yüksek bir önceliğe sahip diğer işlemler Gerekirse CPU onlar gerekli zaman almak olmaz ...% 100 CPU kullanıyor ve komut kalanını (yukarı almak olduğunu fark eder 100%)?

Varsa bile niced,% 100 CPU kullanımı olacak. Ancak, çekirdek birlikte gelen herhangi bir diğer (non-niced) süreçleri öncelik verecektir.

Sürece sistem duyarlı olduğunu ve bunu çalıştığı esnada yapılan diğer iş almak mümkün olduğu gibi, bunu dert olmaz. Benim sistemlerinde distributed computing client çalıştırın ve mevcut herhangi bir CPU döngülerini ıslatır. Bu düşük önceliğe sahip çalışır beri gerektiği gibi, herhangi bir ve tüm diğer işlemler preempt olacaktır.

Süreç arka plan, ve 100% CPU kullandığı gibi süreç bağlı cpu olduğunu görünüyor. Bağlı kullanıcı beklenen olmaz böylece arka plan, bu yüzden tek alternatif GÇ bağlı olacaktır. Süreç gerçekten ilginç IO yapmaması gereken ise, komut dosyası kendisi bağlı CPU olması beklenen ve sadece adamcağız değildir olacaktır.

Işlemler her zaman mümkün olduğunca hızlı gitmeye çalışacağız. Onlar GÇ bağlı iseler bağlı CPU varsa, bunlar,% 100 IO kullanacak, onlar% 100 CPU kullanımı için çalışacağız. Düzgün yazılmış işlem schedulers otomatik olarak büyük proseslerin düşük öncelik olsun yani, tüm süreçlerin adalet duygusu sağlamayı hedefliyoruz. Sen daha güzel ile öncelik düşürebilirsiniz. Cpu kullanımı hala yaklaşık% 100 olduğu gerçeği var şu anda CPU bağlı olan diğer işlemler vardır, ancak büyük olasılıkla ağ girişi için bekliyor demektir.

Güzel değişikliklerin ne sıklıkta php sonuçlar% 100 CPU, bağlam-anahtara önemli süreçler varsa, değil ne kadar.

Bir program bir sistem çağrısı yürütür an, çekirdek gerçek bir iş yapmadan önce başka bir işlem için CPU verebilir. Php tam hız çalışırken de herhangi bir sistem çağrısı yapmak için görünmüyor. Yani herhangi bir kod bloğu meşgul-bekleyen sıkışmış olup olmadığına bakın herhangi bir engelleme I / O (soket, dosya vb) yapmak değil, olduğunu.