2010-07-05 28 views
6

2 sunucularda mod_jk ile Apache + Tomcat kurulumu var. Her sunucunun kendi Apache + Tomcat çifti vardır ve her istek Tomcat yük dengeleme çalışanı tarafından 2 sunucuda sunulmaktadır.mod_jk ile Apache + Tomcat: Maksimum Yük dengeleme ayarında% 100 ayar

Apache'nin maxClient ve Tomcat'in maxThread ayarlanması hakkında bir sorum var. biz sadece 1 sunucu kurulumu varsa Tomcat işçisi asla 150'den fazla seferde gelen bağlantıları aldıkça

varsayılan sayılardır Bu yapılandırmada Apache: maxClient=150, Tomcat: maxThread=200

, bu sadece iyi çalışacak. Ancak, 2 sunucu arasında yük dengelemesi yapıyorsak, Tomcat çalışanının 150 + (başka bir sunucudan bir miktar) alması ve maxThread taşmasını SEVERE: All threads (200) are currently busy olarak alması mümkün olabilir mi? Eğer öyleyse

, ben Tomcat en maxThread=300 Bu durumda belirlesin? 300 maxthreads ayarlanması

Teşekkür

+0

çarpana kadar ince olmalıdır, nasıl yük iki Apaçilerin genelinde yapılan dengeleme edilir? – JoseK

+0

Bir yönlendirici tarafından yapıldı. Ancak trafik hacmine göre filtreleme yapmıyor. Böylece her Apache bir defada 150 istek (ve daha fazla) alabilir. – c4il

cevap

7

iyi olmalı - hayır sabit kurallar vardır. Reddedilen herhangi bir bağlantı görüp görmediğinize bağlıdır.

çok fazla nedenlerini yüksek bellek tüketimini arttırmak ancak üretim Tomcats 750 parçacığı ile çalışacak şekilde bilinmektedir. Buraya da bakın. http://java-monitor.com/forum/showthread.php?t=235

aslında SEVERE hata var mı? Tomcat 6.0.20'de test ettim ve maxThreads geçildiğinde INFO mesajı atar. acceptCount değeri çapraz olana kadar

INFO: Maximum number of threads (200) created for connector with address null and port 8080 

O bağlantıları reddetme etmez. Varsayılan Tomcat docs http://tomcat.apache.org/tomcat-5.5-doc/config/http.html

gelen bağlantı istekleri için maksimum kuyruk uzunluğu tüm olası istek işleme konu kullanımda itibaren 100.

olduğunu. sırası dolduğunda alınan tüm istekler reddedilir. Varsayılan değer Çalışma tarzı eşzamanlı istekleri sayısı arttıkça

1) 'dir 100.

, ipler yapılandırılan maksimum (maxthreads değeri öznitelik) kadar oluşturulacaktır olduğunu. senin durumunda Yani

, mesaj "parçacığı oluşturulan (200) maksimum sayısı" bu noktada görünecektir. Bununla birlikte, talepler yine de servis için sıraya alınacaktır. yine daha eş zamanlı bir talep varsa

2), yapılandırmayı maksimum (acceptCount özelliğinin değeri) kadar sıraya.

Bu nedenle, başarısız olmaksızın toplam 300 istek kabul edilebilir. kaynakları bunları işlemek kullanılabilir olana kadar bu sayı Bağlantı Reddedildi hataları atar

3) Geçişi (sizin acceptCount varsayarak 100 varsayılan altındadır).Yani

size 2 sunucu kurulumunda adımı 3

+0

acceptCount hakkında çok güzel bir nokta! Bu mükemmel çalışmalı. Üzgünüm, soruma göre daha açık olmalıydım, ama benim genel soru şuydu. Aslen maxThread = 150 ve SEVERE hatası aldım. Bu yüzden onu varsayılan 200'e geri döndürdüm, ama sonra ne olduğunu sorduğum için 200'ün yeterli olmayacağını anladım. Cevabınız için çok teşekkürler. Şimdi her şey mantıklı. – c4il