zoukankan      html  css  js  c++  java
  • Linux打开文件句柄/proc/sys/fs/file-max和ulimit -n的区别

    max-file 表示系统级别的能够打开的文件句柄的数量。是对整个系统的限制,并不是针对用户的。
    ulimit -n 控制进程级别能够打开的文件句柄的数量。提供对shell及其启动的进程的可用文件句柄的控制。这是进程级别的。

    对于服务器来说,file-max和ulimit都需要设置,否则会出现文件描述符耗尽的问题。
    一般如果遇到文件句柄达到上限时,会碰到"Too many open files"或者Socket/File: Can’t open so many files等错误。

    为了让服务器重启之后,配置仍然有效,需要用永久生效的配置方法进行修改。
    max-file:

    查看系统级别的能够打开的文件句柄的数量,Centos7默认是794168
    #cat /proc/sys/fs/file-max

    794168

    系统级打开最大文件句柄的数量永久生效的修改方法,修改文件,文件末尾加入配置内容:
    #vim /etc/sysctl.conf

    fs.file-max = 2000000

    然后执行命令,使修改配置立即生效:
    #sysctl -p

    ulimit:

    查看用户进程级的能够打开文件句柄的数量,Centos7默认是1024
    这里设置的是当前shell的当前用户的打开的最大限制,如果当前用户打开多个shell,则每个shell都能打开该最大值

    #ulimit -n

    1024

    进程级打开文件句柄数量永久生效的修改方法,修改文件,文件末尾加入配置内容:
    这里限制一个用户的所有shell能打开的最大数:

    #vim /etc/security/limits.conf

    • soft nofile 65535

    • hard nofile 65535

    修改以后,需要重新登录才能生效。

    如果需要设置当前用户session立即生效,还需要执行:

    #ulimit -n 65535 

    对于服务器,一般修改进程级的最大打开文件句柄数即可(系统默认1024,有点小)。一般不需要调整系统级的最大数。
    如果出现了达到系统级别最大限制时,也需要同步调整系统级的最大数的。

    linux 中数据的含义 /proc/sys/fs/file-nr

    [root@localhost logs]# cat /proc/sys/fs/file-nr
    2112                                           0                             2100000

    已分配文件句柄的数目     已使用文件句柄的数目      文件句柄的最大数目

    转载于:https://blog.51cto.com/13718210/2359978

  • 相关阅读:
    MarkDown语法总结
    HashMap
    [LeetCode] 102. Binary Tree Level Order Traversal(二叉树的中序遍历)
    [LeetCode] 287. Find the Duplicate Number(寻找重复数字)
    [LeetCode] 215. Kth Largest Element in an Array(数组里的第 k 大元素)
    [LeetCode] 39. Combination Sum(组合的和)
    [LeetCode] 49. Group Anagrams(分组相同字母异序词)
    [LeetCode] 48. Rotate Image(旋转图片)
    [LeetCode] 647. Palindromic Substrings(回文子串)
    [LeetCode] 238. Product of Array Except Self(数组除自身元素外的乘积)
  • 原文地址:https://www.cnblogs.com/twodog/p/12135077.html
Copyright © 2011-2022 走看看