2021-09-02 linux修改open files数
概要:
linux系统默认open files数目为1024, 有时应用程序会报Too many open files的错误,是因为open files 数目不够。这就需要修改ulimit和file-max。特别是提供大量静态文件访问的web服务器,缓存服务器(如squid), 更要注意这个问题。
网上的教程,都只是简单说明要如何设置ulimit和file-max, 但这两者之间的关系差别,并没有仔细说明。
说明:
file-max的含义。man proc,可得到file-max的描述:
/proc/sys/fs/file-max
This file defines a system-wide limit on the number of open files for all processes. (See
also setrlimit(2), which can be used by a process to set the per-process limit,
RLIMIT_NOFILE, on the number of files it may open.) If you get lots of error messages
about running out of file handles, try increasing this value:
即file-max是设置 系统所有进程一共可以打开的文件数量 。同时一些程序可以通过setrlimit调用,设置每个进程的限制。如果得到大量使用完文件句柄的错误信息,是应该增加这个值。
也就是说,这项参数是系统级别的。ulimit
Provides control over the resources available to the shell and to processes started by it, on systems that allow such control.
即设置当前shell以及由它启动的进程的资源限制。
显然,对服务器来说,file-max, ulimit都需要设置,否则就可能出现文件描述符用尽的问题
修改:
1.修改file-max
echo 6553560 > /proc/sys/fs/file-max //sysctl -w “fs.file-max=34166”,前面2种重启机器后会恢复为默认值
或
vim /etc/sysctl.conf, 加入以下内容,重启生效
fs.file-max = 6553560
2.修改ulimit的open file,系统默认的ulimit对文件打开数量的限制是1024
ulimit -HSn 102400 //这只是在当前终端有效,退出之后,open files又变为默认值。当然也可以写到/etc/profile中,因为每次登录终端时,都会自动执行/etc/profile
或
vim /etc/security/limits.conf //加入以下配置,重启即可生效
- soft nofile 65535
- hard nofile 65535
如果不生效:
请检查以下几点:
首先查看ssh的版本,ssh -V
如果版本是7.3及以下:修改/etc/ssh/sshd_config中 UseLogin的值为yes
UseLogin yes后,重启sshd服务service sshd restart即可。
如果版本是7.4及以上,具体步骤如下:
1、修改/etc/ssh/sshd_config的UsePAM no为UsePAM yes
2、修改/etc/pam.d/sshd以及/etc/pam.d/password-auth为之前版本的文件。
/etc/pam.d/sshd示例:
auth required pam_sepermit.so
auth include password-auth
account required pam_nologin.so
account include password-auth
password include password-auth
pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session optional pam_keyinit.so force revoke
session include password-auth
/etc/pam.d/password-auth示例:
#%PAM-1.0
This file is auto-generated.
User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3 type=
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
session required pam_limits.so
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
为了让一个程序的open files数目扩大,可以在启动脚本前面加上ulimit -HSn 102400命令。但当程序是一个daemon时,可能这种方法无效,因为没有终端。
附录2.
如果某项服务已经启动,再动态调整ulimit是无效的,特别是涉及到线上业务就更麻烦了。
这时,可以考虑通过修改/proc/’程序pid’/limits来实现动态修改!!!
2021-09-02 linux修改open files数相关推荐
- Linux修改open files数
原起 1.Linux系统默认open files数目为1024, 有时应用程序会报Too many open files的错误,是因为open files 数目不够. 2.压力测试防止open fil ...
- linux修改open files:ulimit、file-max
linux修改open files:ulimit.file-max linux系统默认的open files 为1024 ,如果程序报错 too many open files错误,就是因为open ...
- 修改linux的最大文件句柄数限制
修改linux的最大文件句柄数限制 对于一般的应用来说(象Apache.系统进程)1024完全足够使用.但是如何象squid.mysql.java等单进程处理大量请求的应用来说就有点捉襟见肘了.如果单 ...
- linux 修改最大线程,修改linux系统用户最大线程数限制
遇到了坑就记下来,养成一个好习惯,利人利己.java tomcat启动后总是报错:java.lang.OutOfMemoryError: unable to create new native thr ...
- 02.Linux的基础命令
第二讲 Linux常用命令 课程大纲 课程内容 学习效果 掌握目标 Linux基础 Linux的命令 掌握 常用命令 掌握 五.Linux常用命令 (一)Linux的命令 1.命令的必要性 虽然我们可 ...
- linux 内存被修改,linux 查询内存(linux 修改 openfiles)
linux 查询内存(linux 修改 openfiles) 2020-07-24 11:09:44 共10个回答 下面是一个可供选择的,但并不全面的图形或命令行工具列表,这些工具用来检查Linux平 ...
- 2021.09.27 MySQL笔记
2021.09.27 MySQL笔记 文章目录 2021.09.27 MySQL笔记 一.展示当前存在的所有数据库 二.使用(选中)一个数据库 三.创建一个数据表 四.查询并展示该数据库内的所有数据表 ...
- Linux修改fstab引起系统无法启动问题的解决方法
文章列表 crontab执行脚本出错 博客分类: Linux 最近经常碰到关于crontab不能执行的,初步总结了有以下几个原因:第一,脚本的原因:大多数情况下,是我们的脚本的问题,这种问题导致cro ...
- 实习日志 (2021.09.13)
2021.09.13星期一 今天把之前的算法题终于给弄明白了,并能够按照自己的思路去把他给完成,总结这个题目并不是很难,最重要的是要把链表给弄懂,一开始由于我对链表不是很熟悉,导致我在写该题目的时候花 ...
最新文章
- JS Array.reduce 实现 Array.map 和 Array.filter
- Linux的一些基本命令与MySQL索引
- 回文树或者回文自动机,及相关例题
- jzoj1082-合并果子【堆,贪心】
- php图型分析插件,IMAGE缩略图插件
- 教育类网页设计灵感|容易阅读,条理清晰!
- R 绘制风洞实验数据曲线
- javascript时间戳转换成yyyy-MM-DD格式
- html5 中国地图统计图,html5 echarts中国地图网络销售分布图表代码
- 信息熵是怎样炼成的 | 纪念信息论之父香农
- 史上最大DDoS攻击”之争”
- 突破与改变:酒店品牌的中高端之战
- 精神小伙儿探秘JVM( 六)
- 洛谷 U87052 一线天
- linux色彩配置文件,Xfce得到颜色配置文件的支持
- 雷电2接口_中国连城 | 总结关于USB、TypeC、雷电接口的冷知识
- mysql distinct 优化_SQL优化终于干掉了“distinct”
- 使用instantclient_19客户端(免安装)远程连接Oracle服务器端数据库
- 揭秘今年Android春招面试必问问题有哪些?成功拿下大厂offer
- 土地估价师试题(含答案)
热门文章
- 重装系统win7教程
- webgl1到webgl2_我如何使用WebGL重建Gorillaz Andromeda音乐视频
- poj 1755 Triathlon (半平面交解一元二次不等式)(切割求半平面交)
- IDEA自动生成实体类XML
- Java 8 Stream Lambda 的学习与使用
- Pandas如何读取保存Excel
- python计算标准差函数_Python pandas,pandas常用统计方法,求和sum,均值mean,最大值max,中位数median,标准差std...
- 前端基础 HTML
- 偶尔娱乐一下应该无妨?
- 如何用网站统计工具追踪访客来路