2013-07-09 20 views
6

Ben Noordhius tarafından Node v0.10.0'da yapılan değişikliklerden biri, Unix'te "UV_THREADPOOL_SIZE çevre değişkenini onurlandırmak" tır. "Threadpool.c" kaynak dosyası sadece böyle görünüyor.UV_THREADPOOL_SIZE ortam değişkenini kullanmayı deneyen var mı?

Bu env değişkenini ayarlamazsam, iş parçacığının varsayılan boyutu olan 4 evreli bir iş parçacığıyla sınırlı olduğumu doğrulayabilirim.

Ancak bu ortam değişkeni Linux sunucumda 64 olarak ayarladıktan sonra Düğüm'ü yeniden başlatıyorum, ancak hala 5 boyutta bir iş parçacığı gibi sınırlı görünüyor.

Bu kimseye bir anlam ifade ediyor mu? Teşekkürler!

+0

Eğer [Buraya hedef parçacığı havuzu boyutunu girin] cpu çekirdekleri daha az varsa, dikkat : http://stackoverflow.com/q/1718465/149444 –

+0

@RicardoStuven, çekirdek başına 1'in ötesine geçen ek iplikler, Node'de hala yardımcı olacaktır, çünkü libuv threadpool genellikle yalnızca IO için kullanılır ve hesaplama için kullanılmaz. Bu [kabul edilen cevap] 'ın ilk satırında ele alınmıştır (http://stackoverflow.com/a/1718522/675721). –

cevap

7

Bu, düğümü node komutuyla veya düğüm programının içinden ayarlamalısınız.

UV_THREADPOOL_SIZE=64 node 

veya programdan değiştirin:: hoşuna Yürütme

process.env.UV_THREADPOOL_SIZE=64 
//then execute some function that requires threadpool 
require('fs').readFile('testing',function(){}); 

Test ipler:

ps -Lef | grep "\<node\>" | wc -l 
67 
+0

Sadece process.env dosyasına UV_THREADPOOL_SIZE eklediğimde 6 konu görüyorum. Onu görmek için okumak gerekir? – 4m1r

+0

@ 4m1r Evet, bundan daha önce bahsetmiştim. – user568109

+1

'.bashrc' ya da eşdeğerinize export UV_THREADPOOL_SIZE = 64' koymak, bu kabuk altında başlatılan herhangi bir düğüm işlemine de uygulayacaktır. – DuBistKomisch

İlgili konular