简单的说, max-file表示系统级别的能够打开的文件句柄的数量, 而ulimit -n控制进程级别能够打开的文件句柄的数量.

man 5 proc, 找到file-max的解释:
file-max中指定了系统范围内所有进程可打开的文件句柄的数量限制(系统级别, kernel-level). (The value in file-max denotes the maximum number of file handles that the Linux kernel will allocate).当收到”Too many open files in system”这样的错误消息时, 就应该曾加这个值了.

# cat /proc/sys/fs/file-max
185230
# echo 100000 > /proc/sys/fs/file-max

或者
# echo ""fs.file-max=65535" >> /etc/sysctl.conf
# sysctl -p

The kernel constant NR_OPEN imposes an upper limit on the value that may be placed in file-max. (这句啥子意思? 没太明白)

对于2.2的内核, 还需要考虑inode-max, 一般inode-max设置为file-max的4倍. 对于2.4及以后的内核, 没有inode-max这个文件了.

file-nr 可以查看系统中当前打开的文件句柄的数量. 他里面包括3个数字: 第一个表示已经分配了的文件描述符数量, 第二个表示空闲的文件句柄数量, 第三个表示能够打开文件句柄的最大值(跟file-max一致). 内核会动态的分配文件句柄, 但是不会再次释放他们(这个可能不适应最新的内核了, 在我的file-nr中看到第二列一直为0, 第一列有增有减)

man bash, 找到说明ulimit的那一节:
提供对shell及其启动的进程的可用资源(包括文件句柄, 进程数量, core文件大小等)的控制. 这是进程级别的, 也就是说系统中某个session及其启动的每个进程能打开多少个文件描述符, 能fork出多少个子进程等…

当达到上限时, 会报错”Too many open files”或者遇上Socket/File: Can’t open so many files等

另外需要注意的是, 每种资源都有相关的软硬限制, 软限制是内核强加给相应资源的限制值,硬限制是软限制的最大值. 非授权调用进程只可以将其软限制指定为0~硬限制范围中的某个值,同时能不可逆转地降低其硬限制.授权进程可以任意改变其软硬限 制.RLIM_INFINITY的值表示不对资源限制.

分别使用-H和-S选项来指定需要对资源是做硬限制/软限制的设置. 如果都不指定, 硬限制和软限制同时设置.

打印资源的限制值, 如果不明确指定-H, 打印的是-S

要改apache的ulimit, 可以在 /usr/sbin/apachectl 这个脚本中修改 ULIMIT_MAX_FILES 这个值

可打开文件句柄数设置的太大, 有那些危害:
If the file descriptors are tcp sockets, etc, then you risk using up a large amount of memory for the socket buffers and other kernel objects; this memory is not going to be swappable.

另外要记得的是socket connection也是文件.

linux系统级别的能够打开的文件句柄的数file-max命令相关推荐

  1. 详解Linux系统Vi 和 Vim中正常模式、编辑模式、命令模式相互转化,以及vim命令使用

    详解Linux系统Vi 和 Vim中正常模式.编辑模式.命令模式相互转化 vi 和 vim 的基本介绍 vi 和 vim 的三种常见模式 正常模式 正常模式常用命令 插入模式/编辑模式 命令行模式 v ...

  2. linux常用删除空文件夹,Linux基础 linux系统中的批量删除文件与空文件删除的命令介绍...

    Linux基础教程linux系统中的批量删除文件与空文件删除的命令介绍 Linux资料下面删除文件或者目录命令rm(remove): Linux培训功能说明:删除文件或目录. 语 法:rm [-dfi ...

  3. linux系统 exe文件怎么打开方式,linux操作系统下,exe文件为什么打不开?

    跃然一笑 linux下默认是无法打开exe文件,需要下载wine支持exe,但并非所有exe都可以运行的.Wine ("Wine Is Not an Emulator" 的首字母缩 ...

  4. linux系统下的bash shell指令有哪些?对bash命令的汇总和小结

    一.参考来源 Windows系统的cmd命令哪些?具体怎么用?cmd命令汇总,dos命令小结?和linux命令的对比? 下面这个网站,强烈推荐,一旦遇到自己不懂的linux命令,直接去这个开源站检索即 ...

  5. Linux系统开机后/etc/rc.d/rc.local文件中的命令没有执行(已解决)

    今天想将linux系统上的svn服务添加到开机自启动,结果重启机器后发现svn服务根本没有起来,检查了添加到/etc/rc.d/rc.local文件的命令没有问题,如下: 看了文件的注释部分才知道,原 ...

  6. 在Linux系统上安装Redis客户端报错:In file included from adlist.c:34 zmalloc.h:50:31: error: jemalloc......

    在Centos6.9系统上安装redis客户端时报错,步骤如下: 1.下载redis客户端源码包: wget  http://download.redis.io/releases/redis-3.0. ...

  7. linux系统级别及特殊字符的意义

    运行级别: 0是关机 1是单用户模式 2不需要网络,不需要NFS(Network File System)的多用户模式 3是多用户模式,命令行模式 4是未使用的 5是图形桌面 6是重启 runleve ...

  8. 在Linux系统如何识别和打开摄像头

    今晚很高兴,捣鼓了几天,郁闷了几天的事,今天解决了一些了.起码我能在linux下看到摄像头的图像了. 提起USB摄像在linux下的使用,无论是百度还是Google,出现的多数是法国人写的一个通用驱动 ...

  9. 国产linux系统使用 PageOffice 在线打开 word 文件

    一.客户端环境 1.操作系统 银河麒麟,中标麒麟,统信UOS 2.芯片 芯片(CPU):x86(Intel.兆芯) ,ARM(飞腾.鲲鹏),龙芯 3.浏览器 360安全浏览器 奇安信 uos自带浏览器 ...

最新文章

  1. linux下mysql数据库目录迁移_linux下mysql数据库目录迁移问题
  2. 自定义应用Crash时系统显示的对话框
  3. [翻译]2005年软件业界推出新产品非官方计划
  4. scheduledexecutorservice 的使用_java中ThreadPool的介绍和使用
  5. No modules named ‘tensorflow.compat.v2‘
  6. linux查看共享内存max,浅析Linux的共享内存与tmpfs文件系统
  7. 金蝶K3与百望九赋税控开票软件对接实现半自动开票
  8. .Net Core开发学习(一) ——Startup 类
  9. Just to do!!!Just to do!!!
  10. html-HR标签分割线
  11. 网站添加Google翻译代码
  12. java file 只读_Java如何设置文件为只读?
  13. 开灯问题 算法竞赛 (注释详细)
  14. MySQL性能优化(三)Buffer Pool实现原理
  15. JPush(极光推送)实战总结
  16. batch软件功能测试,Batch SMART 最强序列特征[结构域]预测软件
  17. 几何学的公理化:塔尔斯基 pk 希尔伯特,谁能取胜?
  18. 处理.Dwg文件用哪种技术方案?ObjectARX,RealDWG还是Teigha(ODA)?
  19. 什么是overlay?如何定制overlay?
  20. 转:关于正太分布和多维正态分布的理解(知乎)

热门文章

  1. java增加final,Java8增加功能--Effectively final 功能
  2. linux+任务默认优先级,uclinux内核的任务优先级及其load_weight
  3. mybatis可以用oracle,使用MyBatis调用oracle函数(基于注释)
  4. MySQL面试题 | 附答案解析(十四)
  5. CS131专题-8:图像纹理
  6. GPU运行Tensorflow详细教程及错误解决
  7. c语言usb串口输出,C语言实现模拟USB对8bit数据的NRZI编码输出
  8. SQLite3简单C++包装类源码示例
  9. Blender从头到尾创建低多边形角色学习教程 Low Poly Characters – Blender Bitesize Course
  10. 【blender教程】从头到尾全流程创建一辆吉普车