Linux系统上默认的open files数目为1024, 有时应用程序会报Too many open files的错误,是因为open files 数目不够。

用 ulimit -a 命令可以查看 系统对各种参数的限制;

# ulimit -a

core file size          (blocks, -c) 0

data seg size           (kbytes, -d) unlimited

scheduling priority             (-e) 0

file size               (blocks, -f) unlimited

pending signals                 (-i) 257648

max locked memory       (kbytes, -l) 64

max memory size         (kbytes, -m) unlimited

open files                      (-n) 4096

pipe size            (512 bytes, -p) 8

POSIX message queues     (bytes, -q) 819200

real-time priority              (-r) 0

stack size              (kbytes, -s) unlimited

cpu time               (seconds, -t) unlimited

max user processes              (-u) unlimited

virtual memory          (kbytes, -v) unlimited

file locks                      (-x) unlimited

由上面可以知道 open files 当前限制为 4096,ok,我们可以修改稍微大一点;

当你把open files的值增大到一定程度,你的Too many open files就不会再出现了。

修改方法:

(1)ulimit -HSn 102400

这只是在当前终端有效,退出之后,open files 又变为默认值。

(2)将ulimit -HSn 102400写到/etc/profile中,因为每次登录终端时,都会自动执行/etc/profile。

(3)令修改open files的数值永久生效,则必须修改配置文件:/etc/security/limits.conf. 在这个文件后加上:

* soft nofile 102400

* hard nofile 102400

这种方法需要重启机器才能生效。

(4)为了让一个程序的open files数目扩大,可以在启动脚本前面加上(1)中的命令。当程序是一个daemon时,可能这种方法无效,没有终端了。

影响open files数值的还有一个内核参数file-max,这是Linuxt系统的总限制。可以通过如下文式查看:

cat /proc/sys/fs/file-max

或者

sysctl -a | grep fs.file-max

对于服务器可以采用如下方法修改file-max:

(1)重启机器后恢复为默认值

echo 34166 > /proc/sys/fs/file-max

或者

sysctl -w "fs.file-max=34166"

(2)修改配置文件/etc/sysctl.conf, 在最后加上一行:

fs.file-max = 34166

然后sysctl -p 生效 或者 重启机器以后永久生效。

转载于:https://blog.51cto.com/very1024/1134327

Linux上修改open files数目相关推荐

  1. linux elf命令,实战:Linux上修改ELF文件的方法

    7zip/bin/7za x -y -bd "-o/temp/94ac6fe8-1a16-43d8-8fa9-c4e2f2bd0445" "/downloadedPack ...

  2. linux上修改html,linux进程名修改

    如何修改 Linux 中的进程名 在编写网络服务器程序时,为了响应客户端的请CSS布局HTML小编今天和大家分享,我们经常需要新建进程来处理业务流程:而且又是为了关闭某个非法请CSS布局HTML小编今 ...

  3. 怎么在linux上修改mysql端口映射_如何在Linux中更改默认的MySQL / MariaDB端口

    在本指南中,我们将学习如何更改MySQL / MariaDB数据库在CentOS 7和基于Debian的Linux发行版中绑定的默认端口. MySQL数据库服务器在Linux和Unix下运行的默认端口 ...

  4. linux上修改ssh密码和mysql密码

    修改ssh密码 sudo passwd root 修改mysql密码 方法1: 用SET PASSWORD命令 mysql -u root -p mysql> SET PASSWORD FOR ...

  5. Linux设置密码dictionary,Linux中修改密码出现it is based on a dictionary word解决方法

    用passwd修改用户密码,常常提示"BAD PASSWORD: it is based on a dictionary word".实际上linux要求的密码验证机制是在/etc ...

  6. linux修改open files:ulimit、file-max

    linux修改open files:ulimit.file-max linux系统默认的open files 为1024 ,如果程序报错 too many open files错误,就是因为open ...

  7. 2021-09-02 linux修改open files数

    概要: linux系统默认open files数目为1024, 有时应用程序会报Too many open files的错误,是因为open files 数目不够.这就需要修改ulimit和file- ...

  8. 如何用golang获取linux上文件的访问/创建/修改时间

    在linux上想获取文件的元信息,我们需要使用系统调用lstat或者stat. 在golang的os包里已经把stat封装成了Stat函数,使用它比使用syscall要方便不少. 这是os.Stat的 ...

  9. boa linux arm修改网卡,Boa服务器在ARM+Linux上的移植

    Boa服务器在ARM+Linux上的移植 一.Boa服务器介绍 Boa是一种非常小巧的Web服务器,其可执行代码只有大约60KB左右. 作为一种单任务Web服务器,Boa只能依次完成用户的请求,而不会 ...

  10. Linux修改open files数

    原起 1.Linux系统默认open files数目为1024, 有时应用程序会报Too many open files的错误,是因为open files 数目不够. 2.压力测试防止open fil ...

最新文章

  1. 面向对象设计模式纵横谈:Singelton单件模式(笔记记录)
  2. python中requests库的用途-python中requests.session的妙用
  3. 2021-03-04 Halcon初学者知识 【18】谈谈秩滤波(Rank filter)
  4. Longest Substring Without Repeating Characters
  5. JAVA——使用Spring Boot Scheduled时注入simple-robot Bot解决方案
  6. MySQL复习资料(八)——MySQL-事务
  7. java中的lombok_如何在Java中使用Lombok删除样板设置器吸气剂
  8. CSS常用的选择器和优先级的权重问题
  9. Git - Pull Request工作流
  10. 程序员是否应该创造面向 IDE 而非人类的编程语言?
  11. Java基础知识框图总结
  12. 微软:将向安卓和苹果iOS平台推出杀毒软件Defender
  13. 咸鱼ZTMR实例—PS2手柄
  14. 微信公众号网页开发测试环境搭建
  15. css防爆电机,防爆马达
  16. 自己动手开发编译器(三)有穷自动机
  17. win7磁盘清理_Win7系统使用久变慢怎么办?Windows7系统优化方法
  18. TortoiseSvn文件夹及文件图标不显示
  19. C语言/实现MD5加密
  20. 运行时服务(二)、warnings模块

热门文章

  1. Linux内存映射实现框架
  2. (六)洞悉linux下的Netfilteriptables:如何理解连接跟踪机制?(2)
  3. P-Associated-URI处理流程
  4. MESSAGE消息发送失败
  5. Dos系统功能调用表9号功能
  6. 脚注交叉引用序号不一样_著作权合理使用制度之“适当引用”的界定
  7. mysql 优化 整体思路
  8. linux服务器上使用apache部署静态html网页
  9. linux c 读txt文件内容,如何利用C/C++逐行读取txt文件中的字符串
  10. linux禁止root用户远程登录,linux禁止root用户远程登录