我们服务器的配置情况如下
P4 3.6
内存 1G
硬盘 SCSI 140 G 分区情况 /boot(500M) /SWAP (2048M) /(剩余全部磁盘空间)
服务器是新的HP全新配置
服务器的WEB配置情况:红旗LINUX5.0服务亚洲版+TOMCAT5.5.17+MYSQL5.0.22+JDK1.5.0.6
TOMCAT和 MYSQL以及JD的安配置过程我就不说了现在的问题是:开发组十几个人点击,频繁刷新(遨游浏览器有个自动刷新的功能^_^,我们每台机器开了网站上15个左右窗口,设置成每隔10秒自动刷新),结果不到十分钟就TOMCAT就宕机了
终端显示错误如下:严重:All threads (150) are currently busy, waiting. Increase maxThreads (150) or check the servlet status
程序是用的hibernate + springConnector port="80"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />我试图把maxThreads改为999 Connector port="80"
maxThreads="999" minSpareThreads="25" maxSpareThreads="999"
enableLookups="false" redirectPort="8443" acceptCount="999"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />再测试 ,十多分钟后问题依旧 报错如下:
严重:All threads (999) are currently busy, waiting. Increase maxThreads (999) or check the servlet status
这个已经最大了 web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。也就是说maxThreads最大连接数,不能高于一千。并且我在catalina.sh中配置了JAVA_OPTS='-Xms256m -Xmx512m'最大内存
MYSQL的配置文件 /etc/my.cnf # The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock# Here follows entries for some specific programs# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer = 384M
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
back_log = 500
max_connections = 1024
default-character-set = gb2312
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M[mysqlhotcopy]
interactive-timeout
问题 :大家看是什么问题,是TOMCAT的配置问题,还是MYSQL的问题
还是程序的问题,我们好象是用的tomcat自己带的数据库连接池,没有用到
MYSQL官方网站上的连接池的jar文件,不知道是不是这个的问题。要是确定是程序的问题就好对症下药
tomcat和MYSQL的配置问题除了设置应用 都是默认状态
我确信一点 mysql安装配置没有问题
tomcat配置可更改的地方不多
现在就是不太清楚是配置问题还是程序的问题
P4 3.6
内存 1G
硬盘 SCSI 140 G 分区情况 /boot(500M) /SWAP (2048M) /(剩余全部磁盘空间)
服务器是新的HP全新配置
服务器的WEB配置情况:红旗LINUX5.0服务亚洲版+TOMCAT5.5.17+MYSQL5.0.22+JDK1.5.0.6
TOMCAT和 MYSQL以及JD的安配置过程我就不说了现在的问题是:开发组十几个人点击,频繁刷新(遨游浏览器有个自动刷新的功能^_^,我们每台机器开了网站上15个左右窗口,设置成每隔10秒自动刷新),结果不到十分钟就TOMCAT就宕机了
终端显示错误如下:严重:All threads (150) are currently busy, waiting. Increase maxThreads (150) or check the servlet status
程序是用的hibernate + springConnector port="80"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />我试图把maxThreads改为999 Connector port="80"
maxThreads="999" minSpareThreads="25" maxSpareThreads="999"
enableLookups="false" redirectPort="8443" acceptCount="999"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />再测试 ,十多分钟后问题依旧 报错如下:
严重:All threads (999) are currently busy, waiting. Increase maxThreads (999) or check the servlet status
这个已经最大了 web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。也就是说maxThreads最大连接数,不能高于一千。并且我在catalina.sh中配置了JAVA_OPTS='-Xms256m -Xmx512m'最大内存
MYSQL的配置文件 /etc/my.cnf # The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock# Here follows entries for some specific programs# The MySQL server
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer = 384M
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
back_log = 500
max_connections = 1024
default-character-set = gb2312
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M[mysqlhotcopy]
interactive-timeout
问题 :大家看是什么问题,是TOMCAT的配置问题,还是MYSQL的问题
还是程序的问题,我们好象是用的tomcat自己带的数据库连接池,没有用到
MYSQL官方网站上的连接池的jar文件,不知道是不是这个的问题。要是确定是程序的问题就好对症下药
tomcat和MYSQL的配置问题除了设置应用 都是默认状态
我确信一点 mysql安装配置没有问题
tomcat配置可更改的地方不多
现在就是不太清楚是配置问题还是程序的问题
解决方案 »
- 如何动态实例化一个类(通过代码来实现)
- 我用jdk1.4 出来的调试信息是英文的,但装了jdk1.5出来的调试信息是中文的,怎么变成英文的!!!!
- 异常问题:try已经可以捕获异常了,并对异常通过catch来处理,干嘛还要声明(throws)并且引发(throw )异常呢。
- Java程序中如何调用C程序??
- 包的定义及导入
- java+oracle8.1.7+solaris9 读clob型字段问题
- 晕晕晕!!!
- 请教一个关于swing中JSlider的问题
- 如何将一个String转化为一个Date???
- 请问关于java连接微软access数据库问题,谢谢!
- 还是错误!
- Jspinner.DateEditor中日期最初定位问题!(急)
一般来说同时有999个连接是很难得的,所以TOMCAT的线程都在使用中,
这种情况对于小小的TOMCAT服务器来说已经算是很累的
所以,如果要并发处理很多连接的话,最好还是用一些大的服务器
我觉得应该是服务器的问题。
换其他服务器进行测试看看。
tomcat换成websphere或者weblogic等
1,提高你程序的处理能力,减少线程的征用的数量,
估计是你一个某个有问题
A,你的程序处理能力太低,导致线程征用太快,以前的任务没有完成,新的任务又来了。
B,出现线程死锁2,websphere 和 tomcat 没有本质差别3,TOMCAT 的TCP/IP 接入书写的不咋样,本人改进的代码 可以同时接入
4000 个请求。
再多的话需要开辟多端口同时对外服务。
不好意思,如果有机会我有 100% 把握帮你解决这个问题。