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

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

阅读更多

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 查看确认.)

分享到:
评论

相关推荐

    linux的最大进程句柄数设置

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

    linux_ulimit的使用

    `ulimit` 是一个在 Linux 和其他类 Unix 操作系统中常用的命令行工具,用于设置或显示对当前 shell 进程及其子进程的资源限制。这些限制可以包括最大文件大小、最大核心文件大小、最大数据段大小、最大堆栈大小、...

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

    Linux 系统中,file-max 命令用于设置系统级别的能够打开的文件句柄的数量,这个值决定了 Linux 内核可以分配的文件句柄的最大数量。当系统中的文件句柄数量达到这个值时,系统将不能再打开新的文件句柄,从而导致...

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

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

    linux 句柄

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

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

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

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

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

    linux打开文件数

    在Linux中,每个进程都有一个固定的文件描述符最大值,这个值决定了一个进程能够同时打开的文件数量上限。默认情况下,这个值通常为1024: ```bash ulimit -a ``` 运行上述命令可以查看当前用户的资源限制,其中`...

    linux 学习--句柄学习

    在Linux中,文件描述符(File Descriptor)是句柄的一种具体形式,它是进程用来访问打开文件的一个索引值。每个进程都有一个文件描述符表,包含了所有已打开文件的句柄。文件描述符从0开始,通常0、1、2分别对应标准...

    Centos7.9搭建SS5代理服务器

    可以根据需要调整SS5的性能,例如修改ulimit的值,调整系统的网络连接数。 九、修改SS5启动权限 需要修改SS5的启动权限,添加执行权限,确保SS5可以正常启动。 十、启动SS5并检查状态 使用systemctl命令启动SS5...

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

    在Unix和Linux操作系统中,系统资源的管理是一个关键任务,其中就包括了限制一个用户或进程可以打开的最大文件数。这个限制通常被称为“最大打开文件数”,它由`ulimit`命令来控制。`ulimit -n`命令用于查看或设置一...

    Linux内核调优

    在Linux中,可以通过`ulimit -n`命令来查看当前用户的进程可打开文件句柄的最大数量。例如,执行`ulimit -n`后显示的结果为1024,这意味着该用户的每个进程最多可以打开1024个文件。考虑到标准输入、标准输出、标准...

    mongodb-linux-x86_64-rhel62-3.2.0.tgz

    在这个特定的压缩包"mongodb-linux-x86_64-rhel62-3.2.0.tgz"中,我们关注的是MongoDB针对RHEL(Red Hat Enterprise Linux)6.2发行版的64位版本,版本号为3.2.0。这个版本引入了一些重要的特性和改进,尤其是对数据...

    RHEL5_Oracle_RAC_安装_Linux裸设备

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

    39 案例实战:如何解决经典的Too many connections故障?背后原理是什么.pdf

    在生产环境中部署数据库系统或消息中间件系统时,为了避免Too many connections错误,通常需要提前调整Linux内核参数,如文件句柄的数量。实际上,文件句柄的数量通常需要设置为65535。 除了文件句柄限制之外,...

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

    `/etc/profile` 是 Linux 系统中的全局环境变量配置文件。在此文件中,针对 Oracle 用户进行了一些必要的环境变量设置,以确保 Oracle 能够正确地识别用户的 shell 类型,并相应地设置文件描述符和进程数的限制: `...

    Linux文件存在程序找不到文件.pdf

    在Linux系统中,有时会遇到一个诡异的问题:文件明明存在,但程序却无法找到它。这种情况通常是由于多种因素引起的,以下是一些可能的原因及其解决方法: 1. **编码格式**: 在处理文件路径或者文件名时,确保程序...

    RHEL5_10205 ASM安装手册

    **RHEL5_10205 ASM安装手册**旨在指导用户如何在Red Hat Enterprise Linux 5.4环境下配置和安装Oracle RAC 10.2.0.5与ASM(Automatic Storage Management)。该手册由Wanggi撰写,主要参考了John Smiley关于Linux ...

Global site tag (gtag.js) - Google Analytics