如何在 Linux 下调整可linux下打开文件件/文件描述符数目

2008年6月 Linux/Unix社区大版内专家分月排行榜第二2008年4月 Linux/Unix社区大版内专家分月排行榜第二2008年1月 Linux/Unix社区大版内专家分月排行榜第二2007年11月 Linux/Unix社区大版内专家分月排行榜第二2007年10月 Linux/Unix社区大版内专家分月排行榜第二2007年8月 Linux/Unix社区大版内专家分月排行榜第二
2008年8月 Linux/Unix社区大版内专家分月排行榜第三2008年5月 Linux/Unix社区大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。用户名:qingwang
文章数:269
评论数:78
访问量:870417
注册日期:
阅读量:1297
阅读量:3317
阅读量:452981
阅读量:1137403
51CTO推荐博文
&通常我们通过终端连接到linux系统后执行ulimit -n 命令可以看到本次登录的session其文件描述符的限制,如下:
$ulimit -n
当然可以通过ulimit -SHn 102400 命令来修改该限制,但这个变更只对当前的session有效,当断开连接重新连接后更改就失效了。
如果想永久变更需要修改/etc/security/limits.conf 文件,如下:
vi /etc/security/limits.conf
* hard nofile 102400
* soft nofile 102400
保存退出后重新登录,其最大文件描述符已经被永久更改了。
这只是修改用户级的最大文件描述符限制,也就是说每一个用户登录后执行的程序占用文件描述符的总数不能超过这个限制。
系统级的限制
它是限制所有用户打开文件描述符的总和,可以通过修改内核参数来更改该限制:
sysctl -w fs.file-max=102400
使用sysctl命令更改也是临时的,如果想永久更改需要在/etc/sysctl.conf添加
fs.file-max=102400
保存退出后使用sysctl -p 命令使其生效。
与file-max参数相对应的还有file-nr,这个参数是只读的,可以查看当前文件描述符的使用情况。
直接修改内核参数,无须重启系统。
sysctl -w fs.file-max 65536
echo &65536& & /proc/sys/fs/file-max
两者作用是相同的,前者改内核参数,后者直接作用于内核参数在虚拟文件系统(procfs, psuedo file system)上对应的文件而已。
可以用下面的命令查看新的限制
sysctl -a | grep fs.file-max
cat /proc/sys/fs/file-max
修改内核参数
/etc/sysctl.conf
echo &fs.file-max=65536& && /etc/sysctl.conf
查看当前file handles使用情况:
sysctl -a | grep fs.file-nr
cat /proc/sys/fs/file-nr
825 0 65536
另外一个命令:
lsof | wc -l
下面是摘自kernel document中关于file-max和file-nr参数的说明
了这篇文章
类别:┆阅读(0)┆评论(0)查看: 8522|回复: 4
注册时间最后登录在线时间161 小时阅读权限70积分9147帖子主题精华0UID12099
金牌会员, 积分 9147, 距离下一级还需 853 积分
156注册时间最后登录在线时间161 小时阅读权限70积分9147帖子主题精华0UID12099
《Unix.shell范例经典(第四版)》里提到文件描述符的概念,说头三个文件描述符0,1,2分别给了标准输入、标准输出和错误输出。那么打开的任意一个文件之后,它的文件描述符如何查看呢?有没有相应的命令?有人说用open 加文件名,但没有效果啊,以及/proc/pid/fd, 我的Red Hat Enterprise Linux Server release 5.5 (Tikanga)里根本没有这个目录啊
注册时间最后登录在线时间1122 小时阅读权限90积分91360帖子主题精华0UID11131
小运维——知我罪我,其惟UNIX-like
注册时间最后登录在线时间1122 小时阅读权限90积分91360帖子主题精华0UID11131
ulimit -n 当前用户的文件描述符数,
如果设置启动后生效
我认为正确的做法,应该是修改/etc/security/limits.conf
里面有很详细的注释,比如
* soft nofile 32768
* hard nofile 65536
天道酬勤——UNIX真美!GNU/Linux更美!
子曰:君子务本,本立而道生!
注册时间最后登录在线时间404 小时阅读权限90积分73727帖子主题精华0UID192
注册时间最后登录在线时间404 小时阅读权限90积分73727帖子主题精华0UID192
用lsof可以查看
比如:lsof -i :22 的显示结果中有一列是FD,这个就是监听在22号端口的进程打开的文件描述符。比如FD这一列显示的是3。再使用lsof -d 3就可以查看到,文件描述符3所打开的文件。
注册时间最后登录在线时间790 小时阅读权限200积分68280帖子主题精华10UID31
守住每一天
注册时间最后登录在线时间790 小时阅读权限200积分68280帖子主题精华10UID31
呵呵,我第一个想到的也是lsof
刚发现,60秒灌水限制。汗@@
&-sina_sign,,7-&
注册时间最后登录在线时间189 小时阅读权限70积分3851帖子主题精华1UID13391
金牌会员, 积分 3851, 距离下一级还需 6149 积分
注册时间最后登录在线时间189 小时阅读权限70积分3851帖子主题精华1UID13391
测试了一下,是这么回事,这个有什么用??
IT运维专家网感谢您的支持
合作联系: QQ:/MSN:/mail:netseek@linuxtone.org </s
Powered by用户名:sunsamson
访问量:3759
注册日期:
阅读量:1297
阅读量:3317
阅读量:452981
阅读量:1137403
51CTO推荐博文
文件描述符的简单概述----文件描述符是一个简单的整数,用以标明每一个被进程所打开的文件和socket。第一个打开的文件是0,第二个是1,依此类推。Unix 操作系统通常给每个进程能打开的文件数量强加一个限制。默认Linux系统的文件描述符是1024,对于Apache\Nginx\Squid等一些服务来说,在高负载的情况下这些文件描述符是远远不够的,所以在部署该类服务器时修改文件描述符是必要&进行的操作,因此需要修改其默认值,修改最大文件描述符的方式有两种:&一,通过ulimit命令修改&##显示当前文件描述符&#ulimit -n&##修改当前用户环境下的文件描述符为65536&#ulimit -HSn 65536&#可以使用以下命令,使其随系统启动时加载&#echo "ulimit -HSn 65536" &&/etc/rc.local&#使用ulimit命令的缺点:&#1、只能修改当前登录用户环境下的文件描述符,如果此用户打开另一个连接,则此链接环境的文件描述符仍然是默认情况的数值;&#2、系统重启后,该设置将会失效&二,修改limits.conf文件,永久更改系统文件描述符最大值&#vi /etc/security/limits.conf文件,在最后加入如下两行&#* & & & & & & & & & & & & & & & soft & &nofile &65536&#* & & & & & & & & & & & & & & & hard & &nofile &65536&#或者使用下列命令直接插入:&#echo "* & & & & & & & soft & &nofile &65536" &&/etc/security/limits.conf&#echo "* & & & & & & & hard & &nofile &65536" &&/etc/security/limits.conf本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)How do I increase the maximum number of open files under CentOS Linux? How do I open more file descriptors under Linux? The ulimit command provides c...
How do I increase the maximum number of open files under CentOS Linux? How do I open more file descriptors under Linux? The ulimit command provides control over the resources available to the shell and/or to processes started by it, on systems that allow such control. The maximum number of open file descriptors displayed with following command (login as the root user). ulimit 命令提供了针对 shell
和/或由该 shell 启动的进程占用资源的控制。 Command To List Number Of Open File Descriptors Use the following command to display maximum number of open file descriptors:
cat /proc/sys/fs/file-max
-- 显示单个登陆会话允许打开的 fd 数目
75000 files normal user can have open in single login session . To see the hard and soft values, issue the command as follows:
To see the hard and soft values for httpd or oracle user, issue the command as follows: 通过切换登陆用户,可以查看针对特定登陆用户所设置的 fd 限制数目。
In this example, su to oracle user, enter:
$ ulimit -Hn
$ ulimit -Sn
System-wide File Descriptors (FD) Limits The number of concurrently open file descriptors throughout the system can be changed via /etc/sysctl.conf file under Linux operating systems. 系统范围级别的 fd 数量控制需要编辑 /etc/sysctl.conf 内核参数配置文件。 The Number Of Maximum Files Was Reached, How Do I Fix This Problem? Many application such as Oracle database or Apache web server needs this range quite higher. So you can increase the maximum number of open files by setting a new value in kernel variable /proc/sys/fs/file-max as follows (login as the root): 通过调整内核参数
/proc/sys/fs/file-max 来增加可打开 fd 数目。
Above command forces the limit to 100000 files. You need to edit /etc/sysctl.conf file and put following line so that after reboot the setting will remain as it is: 通过修改 /etc/sysctl.conf 文件,可以在令针对 fd 的修改一直生效。
Append a config directive as follows:
fs.file-max = 100000
-- 系统范围内修改 fd 数目
Save and close the file. Users need to log out and log back in again to changes take effect or just type the following command:
Verify your settings with command:
User Level FD Limits The above procedure sets system-wide file descriptors (FD) limits. However, you can limit httpd (or any other users) user to specific limits by editing /etc/security/limits.conf file, enter: 通过修改 /etc/security/limits.conf 文件可以在用户级别对 fd 进行限制。
Set httpd user soft and hard limits as follows:
httpd soft nofile 4096
-- 针对 httpd 用户做 fd 限制
httpd hard nofile 10240
Save and close the file. To see limits, enter:
$ ulimit -Hn
$ ulimit -Sn
版权声明:本文内容由互联网用户自发贡献,本社区不拥有所有权,也不承担相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至: 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
用云栖社区APP,舒服~
【云栖快讯】集合阿里巴巴、阿里云技术干货!历届云栖社区在线峰会技术荟萃专题出炉,赶紧收藏吧~&&
面向阿里云ECS实例、HPC和Docker的文件存储服务。
支持MySQL、SQL Server、PostgreSQL、MongoDB、Redis等关系型数据库和NoSQL...
操作审计(ActionTrail)会记录您的云账户资源操作,提供操作记录查询,并可以将记录文件保存到您指定的OS...
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...
2017杭州云栖大会火热抢票
Loading...}

我要回帖

更多关于 dos下打开文件命令 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信