文件描述符的有效范围是 0 到 OPEN_MAX。Linux 2.4.22 强制规定最多不能超过 1,048,576 。
  文件描述符是由无符号整数表示的句柄,进程使用它来标识打开的文件。文件描述符与包括相关信息(如文件的打开模式、文件的位置类型、文件的初始类型等)的文件对象相关联,这些信息被称作文件的上下文。

如何创建文件描述符
  进程获取文件描述符最常见的方法是通过本机子例程open或create获取或者通过从父进程继承。后一种方法允许子进程同样能够访问由父进程使用的文件。文件描述符对于每个进程一般是唯一的。当用fork子例程创建某个子进程时,该子进程会获得其父进程所有文件描述符的副本,这些文件描述符在执行fork时打开。在由fcntl、dup和dup2子例程复制或拷贝某个进程时,会发生同样的复制过程。
  第二个异常在JVM进程缺乏文件描述符时出现(尽管在执行forkAndExec()子例程时不需要新的文件描述符来复制父进程的文件描述符)。对于每个进程,操作系统内核在u_block结构中维护文件描述符表,所有的文件描述符都在该表中建立索引。

缺点
  文件描述符的概念存在两大缺点:
  在非UNIX/Linux操作系统上(如Windows NT),无法基于这一概念进行编程。
  由于文件描述符在形式上不过是个整数,当代码量增大时,会使编程者难以分清哪些整数意味着数据,那些意味着文件描述符。因此,完成的代码可读性也就会变得很差。
如何在不同平台上定义文件描述符的数量
  文件描述符极限以及可分配给进程的最大大小由资源限制来定义。这些值应当按照在WebLogicServer文档中建议的、特定于操作系统的文件描述符值来设置:
  对于WLS8.1:调整硬件、操作系统和网络性能
  对于WLS7.0:调整硬件、操作系统和网络性能
  对于WLS6.1:调整硬件、操作系统和网络性能
  Unix和Linux都有文件描述符。不过,二者的主要区别在于如何设置文件描述符的硬极限值、缺省值和配置过程。
  Solaris
  /usr/bin/ulimit实用程序定义允许单个进程使用的文件描述符的数量。它的最大值在rlim_fd_max中定义,在缺省情况下,它设置为65,536。只有root用户才能修改这些内核值。
Linux
  管理用户可以在etc/security/limits.conf配置文件中设置他们的文件描述符极限,如下例所示。
  softnofile1024
  hardnofile4096
  系统级文件描述符极限还可以通过将以下三行添加到/etc/rc.d/rc.local启动脚本中来设置:
  #Increasesystem-widefiledescriptorlimit.
  echo4096>/proc/sys/fs/file-max
  echo16384>/proc/sys/fs/inode-max
Window
  在Windows操作系统上,文件描述符被称作文件句柄。在Windows2000服务器上,打开文件的句柄极限设置为16,384。此数量可以在任务管理器的性能摘要中监视。
HP-UX
  nfile定义打开文件的最大数量。此值通常由以下公式来确定:((NPROC*2)+1000),其中NPROC通常为:((MAXUSERS*5)+64)。如果MAXUSERS等于400,则经过计算得到此值为5128。通常可以将此值设高一些。maxfiles是每个进程的软文件极限,maxfiles_lim是每个进程的硬文件极限。
AIX
  文件描述符极限在/etc/security/limits文件中设置,它的缺省值是2000。此极限可以通过ulimit命令或setrlimit子例程来更改。最大大小由OPEN_MAX常数来定义。
另外解决方法
  对于ANSI C规范中定义的标准库的文件I/O操作。ANSI C规范给出了一个解决方法,就是使用FILE结构体的指针。事实上,UNIX/Linux平台上的FILE结构体的实现中往往都是封装了文件描述符变量在其中。
  

在部署该类服务器时修改文件描述符是必要进行的操作,linux中有修改最大文件描述符的方式:
 
修改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
 
这样任何用户连接都是变为修改的值。

Linux服务器文件描述符最大值修改相关推荐

  1. Linux:文件描述符

    1. 概述 在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件.目录文件.链接文件和设备文件.文件描述符(file descriptor)是内核为了高效管理已被打开的文件所创建的索引,其是 ...

  2. linux 最大文件描述符fd

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

  3. Linux下文件描述符

    Linux下文件描述符 标签: linuxfilelinux内核apacheunixsocket 2012-08-17 15:45 5798人阅读 评论(0) 收藏 举报 分类: 调优和安全(5) 版 ...

  4. linux用户文件描述符2表示,Linux下文件描述符

    Linux下文件描述符 文件描述符是一个简单的整数,用以标明每一个被进程所打开的文件和socket.第一个打开的文件是0,第二个是1,依此类推.Unix操作系 统通常给每个进程能打开的文件数量强加一个 ...

  5. linux 文件指针,Linux中文件描述符fd与文件指针FILE*互相转换实例解析

    本文研究的主要是Linux中文件描述符fd与文件指针FILE*互相转换的相关内容,具体介绍如下. 1.文件描述符fd的定义:文件描述符在形式上是一个非负整数.实际上,它是一个索引值,指向内核为每一个进 ...

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

    linux下文件描述符的介绍 (2012-10-02 16:01:56) 转载▼ 标签: 描述符 调用 返回 进程 限制 it 分类:linux 当某个程序打开文件时,操作系统返回相应的文件描述符,程 ...

  7. 深入理解Linux/Unix文件描述符和epoll

    Linux/Unix 文件描述符(File Describer)的本质 Linux/Unix(以下简称Linux)系统中,每个进程都有一个专用的数组,数组的元素是一个结构体,称为文件描述符File D ...

  8. ftpclient读取服务器文件能获得文件名文件大小0_理解Linux的文件描述符FD与Inode

    FD 文件描述符 一.概念 Linux 系统中,把一切都看做是文件,当进程打开现有文件或创建新文件时,内核向进程返回一个文件描述符,文件描述符就是内核为了高效管理已被打开的文件所创建的索引,用来指向被 ...

  9. linux存储--文件描述符以及file结构体(一)

    一.什么是文件描述符 在Linux下一切皆文件,对于内核而言,所有打开的文件都通过文件描述符引用,文件描述符是一个非负整数,当打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符.当读. ...

最新文章

  1. 我所知道的网络管理软件
  2. python 矩阵中的冒号 逗号
  3. 配置GoldenGate源端Manager参数
  4. python详细安装教程3.7.4-Linux下Python3.7.4 安装教程
  5. 【两种解法】he Falling Leaves UVA - 699
  6. mysql事务 brave,mysql 查询当天、本周,本月,上一个月的数据
  7. IDC Q1中国云服务报告:公有云IaaS市场增速持续高于全球
  8. H3C 帧中继初级配置(二)
  9. teablue数据分析_基于大数据分析的茶叶质量评估
  10. 帮你快速拿Offer!渣本逆袭大厂面经分享
  11. 解决Eclipse,MyEclipse出现An error has occurred,See error log for more details的错误
  12. 不能bostype没有元数据异常_手把手教你用Python画个箱形图,找出“脏数据”
  13. android 安全加固总结报告,[原创]某加固详细分析总结,另附该加固脱壳机
  14. java actionsupport_【JAVA学习】struts2 中 Actionsupport 的作用
  15. 怎么清理c盘语言文件,怎么清理c盘垃圾
  16. 深度学习 机器学习 花书免费下载《Deep Learning》
  17. Linux 命令(179)—— nice 命令
  18. Android apk打包命名规则
  19. 手机如何当win10电脑摄像头使用
  20. html5对电脑配置要求,bim软件对电脑配置要求高吗

热门文章

  1. 菜鸟刚入手Python第一天
  2. 编程之美求二进制数中1的个数扩展题
  3. Programming Computer Vision with Python (学习笔记十二)
  4. Java中MessageFormat的使用
  5. java7新特性之Try-with-resources statement
  6. RabbitMQ指南(下)
  7. 编码练习——Java-7-集合类
  8. Latex:表格制作全攻略
  9. OpenCV之core 模块. 核心功能(1)Mat - 基本图像容器 OpenCV如何扫描图像、利用查找表和计时 矩阵的掩码操作 使用OpenCV对两幅图像求和(求混合(blending))
  10. 深入理解Objective-C:方法缓存