`
pcpig
  • 浏览: 91269 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

转载:ulimit(文件句柄数量) 在 Centos5(RHEL5)中的调整

阅读更多

转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]

 

[Linux] ulimit(文件句柄数量) 在 Centos5(RHEL5)中的调整

Apr 21st, 2008

转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]

本文链接: http://www.php-oa.com/2008/04/21/ulimit-linux.html

在Linux下面部署应用的时候,有时候会遇上Socket/File: Can’t open so many files的问题,比如还有Squid做代理,当文件打开数到900多时速能就非常快的下降,有可能打不开网页.
其实Linux是有文件句柄限制的,而且Linux默认不是很高,一般都是1024,生产服务器用其实很容易就达到这个数量.

查看方法

我们可以用ulimit -a来查看所有限制值

[root@centos5 ~]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
max nice                        (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 4096
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
max rt priority                 (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 4096
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited


其中 "open files (-n) 1024 "是Linux操作系统对一个进程打开的文件句柄数量的限制(也包含打开的SOCKET数量,可影响MySQL的并发连接数目).这个值可用ulimit命令来修改,但ulimit命令修改的数值只对当前登录用户的目前使用环境有效,系统重启或者用户退出后就会失效.

系统总限制是在这里,/proc/sys/fs/file-max.可以通过cat查看目前的值,修改/etc/sysctl.conf 中也可以控制.

另外还有一个,/proc/sys/fs/file-nr,可以看到整个系统目前使用的文件句柄数量

查找文件句柄问题的时候,还有一个很实用的程序lsof.可以很方便看到某个进程开了那些句柄.也可以看到某个文件/目录被什么进程占用了.

修改方法
若要令修改ulimits的数值永久生效,则必须修改配置文档,可以给ulimit修改命令放入/etc/profile里面,这个方法实在是不方便,还有一个方法是修改/etc/sysctl.conf .我修改了,测试过,但对用户的ulimits -a 是不会改变的。只是/proc/sys/fs/file-max的值变了.(我给命令放到rc.local中失败)

我认为正确的做法,应该是修改/etc/security/limits.conf
里面有很详细的注释,比如

* soft nofile 32768
* hard nofile 65536

也可以直接运行下面这个shell。直接copy到你的终端中运行就好了.

echo -ne "
* soft nofile 65536
* hard nofile 65536
" >>/etc/security/limits.conf

就可以将文件句柄限制统一改成软32768,硬65536.配置文件最前面的是指domain,设置为星号代表全局,另外你也可以针对不同的用户做出不同的限制

注意.这个当中的硬限制是实际的限制,而软限制,是warnning限制,只会做出warning.其实ulimit命令本身就有分软硬设置,加-H就是硬,加-S就是软
默认显示的是软限制,如果运行ulimit命令修改的时候没有加上的话,就是两个参数一起改变.

生效

修改完重新登录就可以见到.(我的系统是Centos5.1.修改了,重新登录后就立刻生效.可以用ulimit -a 查看确认.)

如果你使用squid的话,你要在/etc/init.d/squid的文件加入ulimit -HSn 65535.另外,在squid.conf中也要加入max_filedesc 16384

分享到:
评论
1 楼 pcpig 2012-04-13  
查看当前打开文件数,倒序排序:
lsof | awk '{print $2}' | sort | uniq -c |sort +0 -1nr| awk '{print $2,$1}' | head

相关推荐

    linux的最大进程句柄数设置

    在 Linux 系统中,进程句柄数设置是一个重要的参数,它决定了单个进程能够打开的最大文件句柄数量,包括 socket 连接。系统默认值为 1024,这对于一般的应用来说已经足够使用。但是,对于需要处理大量请求的应用,如...

    增加系统的最大打开文件数

    `ulimit -n`命令用于查看或设置一个用户在单个会话中能打开的最大文件句柄数。值得注意的是,`ulimit`命令对root用户无效,因为root用户不受这些限制的约束,只会影响到普通用户。 为了提升这个限制,需要进行两步...

    linux_ulimit的使用

    在此文件中添加 `ulimit` 命令以全局生效,例如: ``` ulimit -n 4096 ulimit -u 10000 ``` 这些设置将在所有用户的 shell 启动时自动加载并生效。 #### Core Dump 相关设置 在 Linux 系统中,当一个进程...

    linux系统级别的能够打开的文件句柄的数file-max命令.docx

    linux 系统级别的能够打开的文件句柄的数file-max命令 Linux 系统中,file-max 命令用于设置系统级别的能够打开的文件句柄的数量,这...因此,在设置文件句柄数量时,需要根据实际情况进行调整,以免对系统造成危害。

    marmot-cn#readingNotes#设置linux打开文件句柄:proc:sys:fs:file-max和ulimit

    设置Linux打开文件句柄/proc/sys/fs/file-max和ulimit -n的区别表示系统级别的能够打开的文件句柄的数量.是对整个系统的限制,并不是

    ulimit设置句柄数

    这几天在做一个性能测试,写了一个模拟发送http的...  异常信息简单的信息如下:  I/Oexception(java.net.SocketException)caughtwhenprocessingrequest:Toomanyopenfiles  大致了解下,是文件句柄数设置太低导致

    Centos7.9搭建SS5代理服务器

    在Centos7.9中搭建SS5代理服务器,需要安装依赖环境、下载SS5、解压安装文件、编译安装、配置文件修改、添加用户名和密码、修改端口、调整SS5性能、修改SS5启动权限、启动SS5并检查状态、添加防火墙、客户端测试等...

    3 种方法教你在 Linux 中修改打开文件数量限制.doc

    在CentOS 7这样的Linux环境中,系统默认设置了一个最大文件描述符(file descriptor)的数量,可以通过`cat /proc/sys/fs/file-max`命令查看。这个数字表示系统级别的最大限制,但每个用户和进程还有各自的限制。...

    Linux下查看进程打开的文件句柄数和如何修改方法

    修改文件句柄数在Linux下,我们使用ulimit -n 命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面)。系统默认值1024。 对于一般的应用来说(象Apache、系统进程)1024完全足够使用。但是如何象...

    RHEL5_10205 ASM安装手册

    - 在`/etc/security/limits.conf`和`/etc/pam.d/login`中配置进程数和文件句柄限制。 - 在`/etc/profile`和`/etc/csh.login`中设置更细粒度的资源限制,如`ulimit -p16384`和`ulimit -n65536`。 6. **配置...

    centos下安装oracle,一个很重要配置文件

    在此文件中添加以下内容是为了应用前面在 `limits.conf` 中设定的资源限制规则: ```bash #---------------------Beginconfigureoracle10g--------------- session required /lib/security/pam_limits.so #--------...

    centos安装oracle11g

    * 操作系统:CentOS 6.4 64bit * 硬件要求: + 内存大小:至少 2G + 硬盘大小:至少 6G + 交换空间:一般为内存的 2 倍,例如:2G 的内存可以设置 swap 分区为 4G 大小 配置系统 1. 搭建yum仓库 首先,需要...

    RHEL5_安装_Oracle10g

    在RHEL5系统中安装Oracle 10g是一项复杂的过程,需要满足特定的硬件和软件要求。以下是安装Oracle 10g在RHEL5上的详细步骤和知识点: 1. **硬件要求**: - **内存**:至少512MB,推荐更多以保证性能。 - **交换...

    RHEL5_Oracle_RAC_安装_Linux裸设备

    在RHEL5上安装Oracle RAC的过程中,裸设备的使用是一项关键的技术,它能提供更高的I/O性能并减少操作系统对数据库I/O操作的开销。以下是对整个安装过程的详细阐述: 1. **Redhat 5 安装注意事项**: - 在RHEL5环境...

    修改linux进程可打开的文件数的限制open files

    修改linux进程可打开的文件数的限制open files linux中一切都是文件 默认linux一个进程可打开1024个文件 大并发需要达到5万个文件描述符FD,你必须修改该参数值才行

    linux 句柄

    在Linux系统中,“句柄”这个术语并不常见,但根据题目描述中的信息,这里提到的“句柄”可能是指进程标识符或文件描述符等资源标识符。在Linux和其他类Unix系统中,句柄通常用来标识一个打开的文件或其他系统资源。...

    Centos7-11gR2安装依赖

    在Linux环境中,Oracle数据库的安装是一项复杂而关键的任务,尤其是对于CentOS 7这样的操作系统。在CentOS 7上安装Oracle 11g R2数据库时,需要满足一系列的依赖条件,确保系统的稳定性和数据库的正常运行。以下将...

Global site tag (gtag.js) - Google Analytics