Linux服务器文件描述符最大值修改
文件描述符的有效范围是 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服务器文件描述符最大值修改相关推荐
- Linux:文件描述符
1. 概述 在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件.目录文件.链接文件和设备文件.文件描述符(file descriptor)是内核为了高效管理已被打开的文件所创建的索引,其是 ...
- linux 最大文件描述符fd
使用四种框架分别实现百万websocket常连接的服务器 著名的 C10K 问题提出的时候, 正是 2001 年.这篇文章可以说是高性能服务器开发的一个标志性文档,它讨论的就是单机为1万个连接提供服务 ...
- Linux下文件描述符
Linux下文件描述符 标签: linuxfilelinux内核apacheunixsocket 2012-08-17 15:45 5798人阅读 评论(0) 收藏 举报 分类: 调优和安全(5) 版 ...
- linux用户文件描述符2表示,Linux下文件描述符
Linux下文件描述符 文件描述符是一个简单的整数,用以标明每一个被进程所打开的文件和socket.第一个打开的文件是0,第二个是1,依此类推.Unix操作系 统通常给每个进程能打开的文件数量强加一个 ...
- linux 文件指针,Linux中文件描述符fd与文件指针FILE*互相转换实例解析
本文研究的主要是Linux中文件描述符fd与文件指针FILE*互相转换的相关内容,具体介绍如下. 1.文件描述符fd的定义:文件描述符在形式上是一个非负整数.实际上,它是一个索引值,指向内核为每一个进 ...
- linux下文件描述符的介绍
linux下文件描述符的介绍 (2012-10-02 16:01:56) 转载▼ 标签: 描述符 调用 返回 进程 限制 it 分类:linux 当某个程序打开文件时,操作系统返回相应的文件描述符,程 ...
- 深入理解Linux/Unix文件描述符和epoll
Linux/Unix 文件描述符(File Describer)的本质 Linux/Unix(以下简称Linux)系统中,每个进程都有一个专用的数组,数组的元素是一个结构体,称为文件描述符File D ...
- ftpclient读取服务器文件能获得文件名文件大小0_理解Linux的文件描述符FD与Inode
FD 文件描述符 一.概念 Linux 系统中,把一切都看做是文件,当进程打开现有文件或创建新文件时,内核向进程返回一个文件描述符,文件描述符就是内核为了高效管理已被打开的文件所创建的索引,用来指向被 ...
- linux存储--文件描述符以及file结构体(一)
一.什么是文件描述符 在Linux下一切皆文件,对于内核而言,所有打开的文件都通过文件描述符引用,文件描述符是一个非负整数,当打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符.当读. ...
最新文章
- 我所知道的网络管理软件
- python 矩阵中的冒号 逗号
- 配置GoldenGate源端Manager参数
- python详细安装教程3.7.4-Linux下Python3.7.4 安装教程
- 【两种解法】he Falling Leaves UVA - 699
- mysql事务 brave,mysql 查询当天、本周,本月,上一个月的数据
- IDC Q1中国云服务报告:公有云IaaS市场增速持续高于全球
- H3C 帧中继初级配置(二)
- teablue数据分析_基于大数据分析的茶叶质量评估
- 帮你快速拿Offer!渣本逆袭大厂面经分享
- 解决Eclipse,MyEclipse出现An error has occurred,See error log for more details的错误
- 不能bostype没有元数据异常_手把手教你用Python画个箱形图,找出“脏数据”
- android 安全加固总结报告,[原创]某加固详细分析总结,另附该加固脱壳机
- java actionsupport_【JAVA学习】struts2 中 Actionsupport 的作用
- 怎么清理c盘语言文件,怎么清理c盘垃圾
- 深度学习 机器学习 花书免费下载《Deep Learning》
- Linux 命令(179)—— nice 命令
- Android apk打包命名规则
- 手机如何当win10电脑摄像头使用
- html5对电脑配置要求,bim软件对电脑配置要求高吗
热门文章
- 菜鸟刚入手Python第一天
- 编程之美求二进制数中1的个数扩展题
- Programming Computer Vision with Python (学习笔记十二)
- Java中MessageFormat的使用
- java7新特性之Try-with-resources statement
- RabbitMQ指南(下)
- 编码练习——Java-7-集合类
- Latex:表格制作全攻略
- OpenCV之core 模块. 核心功能(1)Mat - 基本图像容器 OpenCV如何扫描图像、利用查找表和计时 矩阵的掩码操作 使用OpenCV对两幅图像求和(求混合(blending))
- 深入理解Objective-C:方法缓存