Linux如何修改openfiles

这篇文章主要讲解了“Linux如何修改open files”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux如何修改open files”吧!

甘井子网站建设公司创新互联,甘井子网站设计制作,有大型网站制作公司丰富经验。已为甘井子上千提供企业网站建设服务。企业网站搭建\成都外贸网站建设公司要多少钱,请找那个售后服务好的甘井子做网站的公司定做!

linux系统默认的open files 为1024 ,如果程序报错 too many open files错误,就是因为open files 数目不够,需要修改ulimit 和file-max 

file-max的含义。man proc,可得到file-max的描述:

/proc/sys/fs/file-maxThis file defines a system-wide limit on the number of open files for all processes. (Seealso 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 messagesabout 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.需改open files

# ulimit -HSn 102400 //这只是在当前终端有效,退出之后,open files又变为默认值。当然也可以写到/etc/profile中,因为每次登录终端时,都会自动执行/etc/profile

# vim /etc/security/limits.conf  //加入以下配置,重启即可生效

* soft nofile 65535
* hard nofile 65535

附录1.
为了让一个程序的open files数目扩大,可以在启动脚本前面加上ulimit -HSn 102400命令。但当程序是一个daemon时,可能这种方法无效,因为没有终端。
附录2.
如果某项服务已经启动,再动态调整ulimit是无效的,特别是涉及到线上业务就更麻烦了。
这时,可以考虑通过修改/proc/’程序pid’/limits来实现动态修改

感谢各位的阅读,以上就是“Linux如何修改open files”的内容了,经过本文的学习后,相信大家对Linux如何修改open files这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


网页标题:Linux如何修改openfiles
地址分享:http://hbruida.cn/article/gedsgh.html