早教吧 育儿知识 作业答案 考试题库 百科 知识分享

toomanyopenfiles问题tomcat报toomanyopenfiles我想修改openfile默认值我在linux命令行输入cat/proc/sys/fs/file-max显示4096我在命令行输入ulimit-a显示openfile1024这两个有什么不同吗?怎样能永久的修改o

题目详情
too many open files问题
tomcat报too many open files 我想修改open file默认值
我在linux命令行输入cat /proc/sys/fs/file-max 显示4096
我在命令行输入ulimit -a 显示open file 1024
这两个有什么不同吗?
怎样能永久的修改open file的值,我用ulimit -n 4096 能修改但是我把linux命令窗口关闭重开 又回到原来的1024了
按楼下两位这样设定以后 怎么让其生效呢?我用2楼的 设置完后 运行source /etc/security/limits.conf 会报
-bash:080527163223.rpm:command not found
-bash:080527163223.rpm:command not found
也就是说没有这个命令.
我试了下重启linux以后生效了,有没有什么办法在不重启linux的前提下让其生效?
▼优质解答
答案和解析
你是远程管理服务器,不能重新启动吗?那你把ulimit -a 这个命令放到tomcat的启动脚本中,当每次启动tomcat前,都把打开文件的最大数,设置成你需要的值.
/proc/sys/fs/file-max是系统总的限制,是由sysctl.conf来决定的.
而ulimit -a获取的值是当前用户允许打开的最大文件数(包括socket连接等)
ulimit -n 命令修改后值,只对当前登录用户的目前使用环境有效,系统重启或者用户退出后就会失效.
如果需要永久修改,你可以修改/etc/security/limits.conf
这个文件中对参数的修改格式说明的比较详细,如果你想设置为4096,可以添加如下内容:
* soft nofile 4096
* hard nofile 4096
如果你用的Linux是RedHat8或者9,需要在 /etc/pam.d/login 文件中加入如下一行
session required /lib/security/pam_limits.so
或者是
session required pam_limits.so