Son birkaç gündür yeni başladığım mevcut üretim sunucumda bir sorun yaşıyorum. Ben mod_jk v1.3 ile bağlı apache httpd-2.2.3 ve tomcat-5.5.20 çalıştırıyorum ve tomcat üzerinde barındırılan bir Spring MVC sitesi var. Neler oluyor, web sitesi yaklaşık 12 saat sonra kullanıcılarımıza takılıyor. bu ilk bu kadar baktıktan sonra ben catalina.outmod_jk tomcat ile bağlantıyı kaybediyor
WARN [org.apache.jk.core.MsgContext] Error sending end packet
java.net.SocketException: Broken pipe
aşağıdaki hatalardan birkaç görebiliyordu olduğu zaman bu o tamamlamıştı önce bir kullanıcı bir istek iptal olduğunu anlamına geldiğini anlamak için geldi ve böylece dönüş Yol kapatıldı, böylece veriler geri dönemedi. Web'de aramadan, bu, iş parçacığının zaman aşımına ulaşana kadar tomcat'te açık kalmasına neden olabilir. Ben catalina.out günlüğün sonunda geldiğinden beri erkek kedi
All threads (200) are currently busy, waiting. Increase maxThreads (200) or check the servlet status
düştü, bu öneri apache httpd.conf içinde JkModule ayarlarında aşağıdaki değişiklik yapmaktı mantıklı görünüyordu
JkOptions +DisableReuse
Sitemize herhangi bir yan etkiye neden olmadığından emin olduktan sonra bunu yaptım ve ertesi gün işe yaramadı ama dün aynı belirtiler donmuş olan web sitesiyle ortaya çıktı. Ancak bu sefer catalina.da hiç hata olmadı, sadece tomcat'e istek almayı bıraktık. o 17:31 son istek aldı ben uygulama günlüğüne de görebileceğiniz ve sonra mod_jk.log içinde benim httpd error_log sonra aşağıdaki
[Thu Sep 06 17:37:07 2012] [18784:53792] [error] ajp_connection_tcp_get_message::jk_ajp_common.c (947): (worker1) can't receive the response message from tomcat, network problems or tomcat is down (127.0.0.1:8009), err=-104
[Thu Sep 06 17:37:07 2012] [18784:53792] [error] ajp_get_reply::jk_ajp_common.c (1536): (worker1) Tomcat is down or refused connection. No response has been sent to the client (yet)
ve görebileceğiniz
[Thu Sep 06 17:38:39 2012] [error] server reached MaxClients setting, consider raising the MaxClients setting
Yani herhangi bir hata almadan önce 6 dakika oldu ve bundan sonra max istemciler hatasından önce 1 dak 30 oldu. Tomcat'in yeniden başlatılması da bu sorunu çözdü.
Apache, tomcat veya connector config'ımızda bahsettiğim dışında bir değişiklik yapılmadı (aşağıdaki geçerli yapılandırma), ancak kullanıcı başına daha fazla Ajax isteği gerçekleştirmek için sitemizde değişiklikler yaptık. Anlamak istediğim, sunucumuzu ne kadar doğru bir şekilde değiştirdiğimi anlayabilmek için sistemimizi analiz etmenin en iyi yolu, sunucumuzu aşırı yüklememem, ancak bu sorunun gerçekleşmesini engellemem.
Teşekkür Iain
Güncel Yapılandırma
httpd.conf
Timeout 300
KeepAlive on
MaxKeepAliveRequests 100
KeepAliveTimeout 15
LoadModule jk_module modules/mod_jk.so
JkLogLevel error
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories +DisableReuse
workers.properties
# Define 1 real worker using ajp13
worker.list=worker1
# Set properties for worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.recycle_timeout=300
httpd-mpm.conf
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
Tomcat ayarları standart erkek kedi ayarlar yalnızca vardır
durdu buldum Tomcat 6/7'ye yükseltmeyi düşündünüz mü? –
Ben teknoloji yığını kurmadı ve yükseltmek zorunda kalmazdım umuyordum. Eğer ona gelirse, denenecek bir şey olabilir ama bu doğru konfigürasyonla düzeltilebileceğine dair bir his var. – sparkdoo