SORU
27 Ocak 2009, Salı


Çok iş parçacığı, çok mu?

Bir server yazıyorum, ve ben her eylem isteği gelen bir iş parçacığı içine dalın. Hemen hemen her isteği veritabanı sorgu yapar bunu yapmak istiyorum çünkü. Havuzu, bir kütüphane inşaat aşağı konuları/imha kesmek için kullanıyorum.

Benim soru olsa - iyi bir kesim için, ben bu gibi konuları O/nedir? Sadece ama yüzlerce bahsediyoruz kaba bir tahmin olurdu biliyor musun? binlerce?


DÜZENLEME:

Teşekkür ederim cevaplar için, sadece bu iş parçacığı sayısı benim tavan öğrenmek için test etmek zorunda kalacağım gibi görünüyor. Soru: nasıl tavana vurdum biliyor musunuz? Tam olarak ölçü ne olmalıdır?

CEVAP
27 Ocak 2009, Salı


Bazı insanlar bunu söylerikikonuları çok fazla - oldukça o kampta değilim :-)

Sana tavsiyem şu:tedbir, sanırım yok.Bir öneri yapılandırılabilir olun ve önce 100, sonra da vahşi yazılım bırakın ve neler olacağını izlemek için ayarlayın.

İplik ise 3, o zaman 100 kullanım zirveleri çok fazla. Eğer günün büyük 100'de kalırsa, 200 yumru ve ne olduğunu görün.

Sanaolabiliraslında kullanımı kendisini izlemek ve başladıktan sonraki süre için yapılandırma ayarlamak ama muhtemelen overkill olduğunu kodunuz var.


Açıklama ve incelikleri için:

Elbette birini kullanarak kendi iş parçacığı havuzu alt rolling savunan değilim. Ama, o zamandan beri ne soruyordun hakkında iyi bir kesme noktası için bir iş parçacığı, sanırım senin iş parçacığı havuzu uygulama becerisine sahiptir sınırı en fazla kaç iş parçacığı oluşturulan (iyi bir şey).

İplik ve veritabanı bağlantı kodu havuzu yazdım ve aşağıdaki özellikler, performans için gerekli olan inandığım () var:

  • etkin iş parçacığı en az sayıda.
  • iş parçacığı sayısı.
  • bir süre için kullanılan henüz bu konuları kapatılıyor.

İlk iş parçacığı havuzu istemci (iş parçacığı sayısı her zaman kullanılabilir) açısından minimum performans için bir temel ayarlar. İkinci iş parçacığı etkin kaynak kullanımı üzerinde bir kısıtlama ayarlar. Üçüncü kaynak kullanımını en aza indirmek için sakin zamanlarda temele döner.

Kullanılmayan bir iş parçacığı (A) işi için yeterli iş parçacığı sahip kaynak kullanımına karşı olan kaynak kullanımı (B) dengelemek gerekiyor.

(A) genellikle bellek kullanımı (yığınları) bir iplik yapmak beri iş yok CPU fazla kullanan olmayacaktır. (B) genel olarak kullanılabilir bir iş için beklemeniz gerekir geldikçe. isteklerini bir gecikme olması

Bu yüzden ölçmek. Sen devlet olarak, konuları büyük çoğunluğu çalışan olmayacak veritabanından yanıt bekliyor olacak. Kaç katıyorum etkileyen iki faktör vardır.

İlk DB bağlantı sayısı. Bu olabilir bir sabit limit sürece yapabilirsiniz artış bunu açıklıyor - gidiyorum varsayıyorum VERİTABANI alabilir sınırsız sayıda bağlantı bu durumda (ancak olması gereken ideal ölçü olarak).

Sonra olmalıdır iş parçacığı sayısı tarihi kullanımınıza bağlıdır. Çalışıyor en az hiç 5%, (örneğin, bunun gibi Bir yapılandırılabilir) ve minimum Bir çalışan vardı az sayıda.

İş parçacığı sayısı tarihi maksimum B% olmalıdır.

Ayrıca davranış değişiklikleri için izlenmesi gerekir. Eğer, bir sebepten, kullanım gider 0 kullanılabilir için önemli bir zaman (ki bu etkiler performans istemciler) gerekir yükseltmek izin verilen maksimum kadar bir kez daha B% daha yüksek.


Yanıt olarak "ben tam olarak ölçü ne olmalıdır?" sorusuna:

Özellikle ölçü ne olmalı yük altında eşzamanlı kullanılan iş parçacığı (DB çağrısından bir dönüş bekliyoruz örneğin,) en büyük miktardır. Eklemek için  emniyet faktörüörnek(diğer posterler sabit öneriler olarak benim örnek almak gibi görünüyor beri altını çizmiş).

Buna ek olarak, bu ayar için üretim ortamında yapılmalıdır. Tamam bir tahmin önceden almak için değil ama üretim bir şekilde tüm bunları çalışma zamanında ayarlanabilir olmalıdır neden olan) atmak söyler. Bu istemci çağrıları geliyor beklenmedik katlama gibi bir durumu yakalamaktır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jason Rosolowski

    Jason Rosolo

    25 EKİM 2006
  • michaeljacksonVEVO

    michaeljacks

    2 EYLÜL 2009
  • VOICE TV

    VOICE TV

    2 Aralık 2010