免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 10718 | 回复: 15
打印 上一主题 下一主题

[Web] [性能]重大苦脑的问题,如果设置Linux最大线程数,网站并发访问量好大 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-12 00:07 |只看该作者 |正序浏览
我使用的是Apache Tomcat/5.0.28,我在server.xml中配置了最大并发连接数,配置如下:


    <Connector port="80"
               maxThreads="999" minSpareThreads="25" maxSpareThreads="999"
               enableLookups="false" redirectPort="8443" acceptCount="999"
               debug="0" connectionTimeout="20000"
               disableUploadTimeout="true" />

并且我在catalina.sh中配置了JAVA_OPTS='-Xms256m -Xmx2500m'最大内存

但是我的网站并发访问量好大,
各位可以看看这篇文章:
http://tech.163.com/05/0711/10/1OCH7J2000091589_3.html

文章中指出:
web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。

也就是说maxThreads最大连接数,不能高于一千,

如果我设置的超过了一千,就报如下错误:

严重: Caught exception (java.lang.OutOfMemoryError: unable to create new native thread) executing org.apache.tomcat.util.net.TcpWorkerThread@d175ff, terminating thread


我用的是Linux 2.6的,我的电脑是4G的内存 2.6的CPU
我用ulimit -u 设置了线程数,为什么还是不行,我设置超过了一千,还是报如上的错误,

[root@server conf]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
pending signals                 (-i) 1024
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 999999
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 9999999
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited


现在我的网站,可以同一时刻,并发访问量会大于一千,就经常报如下错误:

2005-12-11 12:24:23 org.apache.struts.util.PropertyMessageResources <init>
信息: Initializing, config='org.apache.struts.taglib.logic.LocalStrings', returnNull=true
2005-12-11 12:35:12 org.apache.tomcat.util.threads.ThreadPool logFull
严重: All threads (999) are currently busy, waiting. Increase maxThreads (999) or check the servlet status


有谁能帮我看看,
我现在就是要求,把tomcat的最大并发数设置大点,我的程序都是jsp文件,直接安装的tomcat,大家有什么好的办法,不知道resin并发量如何,受不受操作系统限制,

现在我要如何把Linux的默认的一千个线程,把他设置大点呢?

有谁能帮帮我

我会好好感谢你的,我真的很头脑的事情!!!

QQ:81832527

[ 本帖最后由 HonestQiao 于 2005-12-13 14:44 编辑 ]

论坛徽章:
0
16 [报告]
发表于 2007-01-12 13:01 |只看该作者
非常谢谢!!

论坛徽章:
0
15 [报告]
发表于 2006-12-26 09:26 |只看该作者
线程限制多少,要看用什么系统,不同的发行版,系统对thread的限制数不一样。
我用的redhat as4的系统。系统默认限制数。

[root@molive ~]# cat /proc/sys/kernel/threads-max
32764

论坛徽章:
0
14 [报告]
发表于 2006-04-11 09:20 |只看该作者
使用这个命令增加内核文件描述符的限制:
# echo 8192 >/proc/sys/fs/file-max

增加进程文件描述符的限制
# ulimit -n 8192

论坛徽章:
0
13 [报告]
发表于 2006-04-10 16:00 |只看该作者
用ulimit -u
怎么做的呀? 能否给说一下。。谢谢。

论坛徽章:
1
处女座
日期:2013-08-19 15:17:06
12 [报告]
发表于 2005-12-13 18:19 |只看该作者

回复 1楼 zflfaufa 的帖子

这个不象是linux的线程不能超过1000,而是tomcat的线程不能超过1000吧?因为linux的线程肯定是可以超过1000的。再说贴出来的结果也是tomcat配置和tomcat的报错,没有理由证明受linux的线程限制了,如果/var/log/messages有超过1000线程就报错的信息,才能把问题归结到linux系统上。

论坛徽章:
0
11 [报告]
发表于 2005-12-13 15:46 |只看该作者
开两个TOMCAT

论坛徽章:
0
10 [报告]
发表于 2005-12-13 14:01 |只看该作者
我也很想知道。

论坛徽章:
0
9 [报告]
发表于 2005-12-12 23:11 |只看该作者
兄弟,能不能说清楚点啊,我英文不好啊,

论坛徽章:
0
8 [报告]
发表于 2005-12-12 22:21 |只看该作者
I alway thinks that too many threads hasn't more benefit.because every thread should be need any stack memory space, it may be limited with the machine's physical memory and need to spend a lot of cpu time for the thread status maintenance.

your problem seen that it is limted by jvm heap size.you need to adjust it.

good luck to u!

[ 本帖最后由 xiaofei104 于 2005-12-12 23:21 编辑 ]
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP