2011-11-16 11 views
7

Şu anda Tomcat kullanarak bir JDBC aracılığıyla bir Postgres veritabanı ile etkileşime geçen bir uygulama var. Sorgular çok pahalıdır, bu yüzden gördüğüm Tomcat veya Apache'nin neden olduğu bir zaman aşımıdır (Apache, yapılandırmamda Tomcat'in önüne oturur). Veritabanına bağlantıları 20-30 eşzamanlı bağlantılarla sınırlamaya çalışıyorum, böylece veritabanı bunalmış değil. Bunu Max.cate'i 30 ve maks. 20'ye ayarlayarak \ .. yapılandırmasını kullanarak yaptım. MaxWait'i de çarptı.Tomcat - Http bağlayıcısında maksThreads ve acceptControl yapılandırma

Bu senaryoda, veritabanının USE'sini sınırlandırıyorum, ancak Tomcat'te bağlantıların/isteklerin POOLED olmasını istiyorum. Apache, 250 eşzamanlı isteği kabul edebilir. Bu yüzden Tomcat'ın da bu kadarını kabul edebildiğinden emin olmalıyım, ancak bunları uygun şekilde ele alabiliyorum. - "istek işleme iş parçacığı sayısı üst nedenle eşzamanlı maksimum sayısını belirler Http Connector tarafından oluşturulacak

  • maxthreads:

    Tomcat HTTP Bağlantı yapılandırma dosyasında iki ayar vardır ele alınabilecek istekler. "

  • acceptCount - "Tüm olası istek işleme iş parçacıkları kullanımdayken gelen bağlantı istekleri için maksimum sıra uzunluğu. Sıra dolduğunda alınan istek reddedilir."

Ben de JDBC bağlantı maksimum sayıda (30) için maxthreads kurarsanız, ben oldukça anlamıyorum acceptCount = 250-30 ila 220

ayarlayabileceğini tahmin ediyorum JDBC bağlantısında BEKLEYEN bir iş parçacığı arasındaki fark, sıraya dizilmiş bir iş parçacığıyla karşılaştırılıyor ... Benim düşüncem sıraya alınmış bir iş parçacığı daha az döngü tüketiyorken, JDBC havuzunda bekleyen çalışan bir iş parçacığı Ücretsiz bir iş parçacığı için havuzu kontrol ederek ...?

+0

Başkalarının deneyim oranlarını kullanarak başkalarının deneyimini ölçmeye çalışıyorum: bağlantılar. Ayarlanmış üretim değerleriniz var mı, maksimum tomcat iş parçacığı oranını 250: 30 jdbc bağlantılarında tuttunuz mu, eğer öyleyse, bu sizin için nasıl çalıştı? – ledlogic

cevap

0

sürece: Muhtemelen böyle JDBC Bağlayıcı için connectionProperties olarak, ayrı ayrı JDBC bağlantı havuzu yapılandırmak istediğiniz JDBC bağlantı havuzunuzu, veritabanı yazılımınızın ayarlayabileceği/çalışabileceği ve uygulamanızın/donanımınızın üstesinden gelebilecek maksimum boyutlarınıza göre yapılandırmalısınız.

0

Max'inkullanıcılık değeri (db bağlantı havuzlamasının), maksimalden daha düşük (örn. Eşzamanlı iş parçacığı sayısı), çoğu durumda anlamlıdır. Web sitenizde beklediğiniz trafiğe ve bir isteğin ne kadar hızlı işlenebileceğine bağlı olarak acceptCount değerini daha yüksek bir değere ayarlayabilirsiniz.