2012-05-03 12 views
10

Raylar üzerinde bir JRuby uygulaması yapıyorum. Ben rastgele Günlüklerimde bu bir sürü bakın:En fazla havuz boyutu sorununu ortadan kaldıran uygulama havuzu boyutu raylarına raylar

The max pool size is currently 5; consider increasing it

Ben bu adrese benim yapılandırmasında en büyük havuz boyutunu artırabilir anlıyoruz. Adrese baktığım problem, en uygun numaranın ne olması gerektiğini anlamak. Bağlantılar için çekişme sorunlarından kaçınmaya çalışıyorum. Açıkça bu sayıyı iğrenç bir şekilde büyük bir şeye ayarlamak da işe yaramayacaktır.

Uygulamalarınızı en uygun havuz boyutu ayarını bilmek için takip etmeniz gereken genel bir protokol var mı?

here itibaren
+0

Hangi sunucuya dağılıyorsunuz? –

cevap

13

,

bir iş parçacığı havuzu optimum büyüklük mevcut işlemci sayısı ve çalışma sırasına görevlerin niteliğine bağlıdır. Tamamen hesaplanan görevleri yerine getirecek bir iş kuyruğu için bir N-işlemci sisteminde, genellikle N veya N + 1 iş parçacığı bir iş parçacığı havuzu ile maksimum CPU kullanımı elde edersiniz.

G/Ç işleminin tamamlanmasını bekleyebilecek görevler için - örneğin, bir soketten bir HTTP isteği okuyan bir görev - havuz boyutunun kullanılabilir işlemcilerin sayısının ötesine geçmesini isteyeceksiniz. iş parçacıkları her zaman çalışacaktır. Profil oluşturma kullanarak, tipik bir istek için bekleme süresinin (WT) servis zamanına (ST) oranını tahmin edebilirsiniz. Bir N-işlemci sistemi için bu oran WT/ST olarak adlandırılırsa, işlemcileri tamamen kullanmak için yaklaşık N * (1 + WT/ST) dişe sahip olmak istersiniz.

İş parçacığı kullanımı, iş parçacığı havuzu boyutunun ayarlanmasında yalnızca dikkate alınmaz. İş parçacığı havuzu büyüdükçe, zamanlayıcı, kullanılabilir bellek veya soket sayısı, açık dosya tanıtıcıları veya veritabanı bağlantıları gibi diğer sistem kaynaklarının sınırlamaları ile karşılaşabilirsiniz. senin ipler çoğunlukla cpu bağlı olup olmadığını

Yani, uygulama profil, daha sonra çekirdek sayısı veya çekirdek sayısı iplik havuzları boyutunu ayarlamak + 1. veritabanı çağrıları bekleyen zamanınızı en harcama ise tamamlayın, ardından çok sayıda iş parçacığıyla deneme yapın ve uygulamanın nasıl çalıştığını görün.