ubuntu&tomcat最大连接数限制

本文介绍了如何在Ubuntu系统中调整最大打开文件数限制,以避免'too many open files'错误。首先,通过修改`/etc/security/limits.conf`、`/etc/pam.d/su`或`/etc/pam.d/common-session`以及`/etc/profile`文件来设置系统级别的限制。然后,针对Tomcat,文章讲解了如何创建管理员账户、设置JVM参数以优化内存使用,并在`server.xml`中调整连接池参数,如`maxThreads`、`minSpareThreads`和`acceptCount`,以提升并发处理能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. ubuntu最大打开文件数的设置
    如果这个值设置的太小,当进程打开文件数或者建立的socket连接太多时,就会出现“too many open files”的错误。
    (1)用ulimit -a可以查看当前的限制,在open files一项中显示的即是当前的限制
    (2)修改最高限制>>sudo vim /etc/security/limits.conf,在文件尾追加:
* hard nofile 40960
* soft nofile 40960
关于这几列的含义,第一列,代表用户,可以用@myusercount,来指定对于某一用户有效,也可以用*来表示对所有用户有效;第二列,hard,代表类型,即硬限制,相对于软限制来说,硬限制是底线,任何情况下最大打开文件数都不能超出,而软限制,则没有那么严格,在某些条件下可以超出;第三列,nofile,代表item,nofile就是打开文件数;第四列,value,设置nofile的值。
    (3)修改/etc/pam.d/su 或者/etc/pam.d/common-session
修改两文件中的任意一个,加上:  session required pam_limits.so只要在其中一个文件中添加即可。
    (4)修改/etc/profile文件
添加:ulimit -SHn 40960
重启系统。

2. tomcat最大连接数限制
    (1)为tomcat添加管理员帐户
在tomcat-users.xml中添加管理员帐户:
<role rolename="manager-gui"/>//managergui不能修改 
<user username="mrvlgps" password="marvell88" roles="manager-gui"/>

    (2)tomcat的JVM等参数设置
        java程序启动时JVM(Java virtual machine)都会分配一个初始内存和最大内存给这个应用程序。初始内存和最大内存会直接影响到程序的性能。比如说,应用程序用到最大内存的时候,JVM会先去做垃圾回收的动作,释放一些内存。因此在tomcat启动的时候,需要用到的初始内存和最大内存需要事先向JVM声明,一般的Java程序在运行时都可以通过-Xms和-Xmx来调整应用程序的初始内存和最大内存。
Linux:在catalina.sh中添加如下语句:
JAVA_OPTS='$JAVA_OPTS -server -Xmx800m -Xms512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true'
其中,-ms是最小内存,-mx是最大内存
Windows:在catalina.bat中添加:
set JAVA_OPTS=-Xms1024m -Xmx1024m
修改完以后可以访问:http://127.0.0.1:8080/manager/status,需要输入第一步中设置的用户名和密码。
    (3)增加tomcat连接数
在tomcat配置文件server.xml的配置中,和连接相关的参数:
minProcessor:最小空闲连接线程数,用于提高系统处理性能,默认值为10
maxProcessor:最大连接线程数,即并发处理的最大请求数,默认为75
maxThreads:表示最多同时处理的请求数
minSpareThreads:表示即使没有人使用也开这么多线程
maxSpareThreads:表示最多可以有这么多空线程,即有些线程使用完成以后不会直接关闭,只有空闲线程超出这个值以后才会关闭。
acceptCount:当同时连接的人数达到maxThreads时,还可以允许这么多人排队,当排队的人数满了以后,新的连接将直接会被拒绝。
 
maxThreads="500" 
minSpareThreads="100" 
maxSpareThreads="200" 
acceptCount="100"  />   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值