1、概述:

  文件描述符是内核为了高效管理已被打开的文件所创建的索引。是一个非负整数,用于代指被打开的文件。所有通过I/O操作的系统调用都通过文件描述符。

  文件描述符用以表明每一个被进程所打开的文件和socket

2、文件描述符的限制:

  Linux下最大文件描述符的限制有两个:

    (1) 系统级限制:sysctl命令和proc文件系统中查看到的数值是一样的,这属于系统限制,它是限制所有用户打开文件描述符的总和

    (2) 用户级限制:ulimit命令看到的是用户级的最大文件描述符限制,也就是说每一个用户登录后执行的程序占用的文件描述符总数不得超过这个限制。

3、修改文件描述符:

  (1)修改用户级文件描述符

    临时修改:ulimit -SHn 10240  重启失效

      [root@super ~]# ulimit -SHn 10240

      [root@super ~]# ulimit -n
      10240
    永久修改:修改 /etc/security/limits.conf  在末尾添加如下:

      test             soft    nofile          10240
      test             hard    nofile          20480

    修改完生效

    上面设置的意思是:test用户文件描述符达到10240个的时候,触发告警。
                                 test用户文件描述符达到20480个的时候,达到最高上限。

  (2)修改系统级文件描述符

    临时修改:sysctl fs.file-max=40000 或 echo 40000 > /proc/sys/fs/file-max

    [root@super ~]# sysctl fs.file-max=40000

    [root@super ~]# sysctl -a | grep fs.file-max
    fs.file-max = 40000

    

    永久生效:echo "fs.file-max=40000" >> /etc/sysctl.conf  使用 sysctl -p 修改生效,不用重启

    [root@super ~]# echo "fs.file-max=50000" >> /etc/sysctl.conf

    [root@super ~]# sysctl -p

    [root@super ~]# sysctl -a | grep fs.file-max --color
    fs.file-max = 50000

  当服务器运行,Apache、squid、Mysql、Oracle时,都需要对其进行优化调整。

[ 总结 ] Linux 下文件描述符的更多相关文章

  1. Linux下文件描述符

    http://blog.csdn.net/kumu_linux/article/details/7877770 文件描述符是一个简单的整数,用以标明每一个被进程所打开的文件和socket.第一个打开的 ...

  2. linux下文件描述符的介绍

    当某个程序打开文件时,操作系统返回相应的文件描述符,程序为了处理该文件必须引用此描述符.所谓的文件描述符是一个低级的正整数.最前面的三个文件描述符(0,1,2)分别与标准输入(stdin),标准输出( ...

  3. linux下文件描述符的查看及分析

    起因 近期在调试一个Android播放内核是遇到上层传递的是fd(file descriptor),但是在文件播放结束之后调用lseek却提示返回-1,errno=29(#define ESPIPE ...

  4. Linux中文件描述符fd和文件指针flip的理解

    转自:http://www.cnblogs.com/Jezze/archive/2011/12/23/2299861.html 简单归纳:fd只是一个整数,在open时产生.起到一个索引的作用,进程通 ...

  5. linux 最大文件描述符fd

    使用四种框架分别实现百万websocket常连接的服务器 著名的 C10K 问题提出的时候, 正是 2001 年.这篇文章可以说是高性能服务器开发的一个标志性文档,它讨论的就是单机为1万个连接提供服务 ...

  6. [转载] linux中文件描述符fd和文件指针flip的理解

    转载自http://www.cnblogs.com/Jezze/archive/2011/12/23/2299861.html 简单归纳:fd只是一个整数,在open时产生.起到一个索引的作用,进程通 ...

  7. Linux Shell 文件描述符 及 stdin stdout stderr 重定向

    Abstract: 1) Linux Shell 命令的标准输入.标准输出.标准错误,及其重定位: 2)Linux Shell 操作自定义文件描述符: 文件描述符是与文件相关联的一些整数,他们保持与已 ...

  8. 【详解】Linux的文件描述符fd与文件指针FILE*互相转换

    使用系统调用的时候用文件描述符(file descriptor,简称fd)的时候比较多,但是操作比较原始.C库函数在I/O上提供了一些方便的包装(比如格式化I/O.重定向),但是对细节的控制不够. 如 ...

  9. Linux的文件描述符

    (1).文件描述符的定义 文件描述符是内核为了高效管理已被打开的文件所创建的索引,用于指向被打开的文件,所有执行I/O操作的系统调用都通过文件描述符:文件描述符是一个简单的非负整数,用以表明每个被进程 ...

随机推荐

  1. c# mysql blob数据类型

    1.采用stream流形式写入: #region 数据流转换成blob类型数据写入数据库 static public bool StreamToBlob(ref Stream stream, Odbc ...

  2. C++版本的C标准库头文件的特点

    C++标准库中除了定义C++语言特有的功能外,也兼容了C语言的标准库.C语言的头文件形如name.h,C++则将这些文件命名为cname.也就是去掉了.h后缀,而在文件名name之前添加了字母c,这里 ...

  3. CSS position属性---absolute与relative

    详情请点击此链接 http://www.cnblogs.com/polk6/archive/2013/07/26/3214847.html

  4. Redis数据类型及操作详解

    Redis数据库,是nosql的一种.与传统关系型数据库(如mysql.sqlserver等)相比,他在处理大数据量上相当有优势,扩展性和可用性高,这是传统型数据库所达不到的. Redis是一个key ...

  5. 解决Git无法同步空文件夹的问题

    思路:在每个空文件夹下创建空文件,同步后再删除 package org.zln.module1.demo1; import org.apache.log4j.Logger; import java.i ...

  6. 对Web作用域变量进行迭代

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ pa ...

  7. IE6中png背景图片透明的最好处理方法

    在IE6浏览器下png(24位)的图片显示是不能透明的. 1.处理办法就是用DDPngMin.js <!--[if IE 6]> <script src="js/DDPng ...

  8. BZOJ5110 CodePlus2017Yazid 的新生舞会(线段树)

    考虑统计每个数字的贡献.设f[i]为前缀i中该数的出现次数,则要统计f[r]-f[l]>(r-l)/2的数对个数,也即2f[r]-r>2f[l]-l. 注意到所有数的f的总变化次数是线性的 ...

  9. [Leetcode] Anagrams 颠倒字母构成词

    Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be ...

  10. 统计无符号整数二进制中1的个数(Hamming weight)

    1.问题来源 之所以来记录这个问题的解法,是因为在在线编程中经常遇到,比如编程之美和京东的校招笔试以及很多其他公司都累此不疲的出这个考题.看似简单的问题,背后却隐藏着很多精妙的解法.查找网上资料,才知 ...