1. ubuntu最大打开文件数的设置
如果这个值设置的太小,当进程打开文件数或者建立的socket连接太多时,就会出现“too many open files”的错误。
(1)用ulimit -a可以查看当前的限制,在open files一项中显示的即是当前的限制
(2)修改最高限制>>sudo vim /etc/security/limits.conf,在文件尾追加:
(3)修改/etc/pam.d/su 或者/etc/pam.d/common-session
(4)修改/etc/profile文件
(1)为tomcat添加管理员帐户
(2)tomcat的JVM等参数设置
java程序启动时JVM(Java virtual machine)都会分配一个初始内存和最大内存给这个应用程序。初始内存和最大内存会直接影响到程序的性能。比如说,应用程序用到最大内存的时候,JVM会先去做垃圾回收的动作,释放一些内存。因此在tomcat启动的时候,需要用到的初始内存和最大内存需要事先向JVM声明,一般的Java程序在运行时都可以通过-Xms和-Xmx来调整应用程序的初始内存和最大内存。
(3)增加tomcat连接数
maxThreads="500"
minSpareThreads="100"
maxSpareThreads="200"
acceptCount="100"
/>
* hard nofile 40960
* soft nofile 40960
关于这几列的含义,第一列,代表用户,可以用@myusercount,来指定对于某一用户有效,也可以用*来表示对所有用户有效;第二列,hard,代表类型,即硬限制,相对于软限制来说,硬限制是底线,任何情况下最大打开文件数都不能超出,而软限制,则没有那么严格,在某些条件下可以超出;第三列,nofile,代表item,nofile就是打开文件数;第四列,value,设置nofile的值。
修改两文件中的任意一个,加上:
session required pam_limits.so只要在其中一个文件中添加即可。
添加:ulimit -SHn 40960
重启系统。
2. tomcat最大连接数限制
在tomcat-users.xml中添加管理员帐户:
<role rolename="manager-gui"/>//managergui不能修改
<user username="mrvlgps" password="marvell88" roles="manager-gui"/>
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,需要输入第一步中设置的用户名和密码。
在tomcat配置文件server.xml的配置中,和连接相关的参数:
minProcessor:最小空闲连接线程数,用于提高系统处理性能,默认值为10
maxProcessor:最大连接线程数,即并发处理的最大请求数,默认为75
maxThreads:表示最多同时处理的请求数
minSpareThreads:表示即使没有人使用也开这么多线程
maxSpareThreads:表示最多可以有这么多空线程,即有些线程使用完成以后不会直接关闭,只有空闲线程超出这个值以后才会关闭。
acceptCount:当同时连接的人数达到maxThreads时,还可以允许这么多人排队,当排队的人数满了以后,新的连接将直接会被拒绝。
minSpareThreads="100"
maxSpareThreads="200"
acceptCount="100"