linux的最大进程句柄数设置

在Linux下,我们使用ulimit -n命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面)。系统默认值1024。

对于一般的应用来说(象Apache、系统进程)1024完全足够使用。但是如何象squid、mysql、java等单进程处理大量请求的应用来说就有点捉襟见肘了。如果单个进程打开的文件句柄数量超过了系统定义的值,就会提到“too many files open”的错误提示。如何知道当前进程打开了多少个文件句柄呢?下面一段小脚本可以帮你查看:lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more  

在系统访问高峰时间以root用户执行上面的脚本,可能出现的结果如下:

# lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more    131 24204   57 24244   57 24231   56 24264

其中第一行是打开的文件句柄数量,第二行是进程号。得到进程号后,我们可以通过ps命令得到进程的详细内容。

ps -aef|grep 24204 mysql  24204 24162 99 16:15 ?    00:24:25 /usr/sbin/mysqld

哦,原来是mysql进程打开最多文件句柄数量。但是他目前只打开了131个文件句柄数量,远远底于系统默认值1024。

但是如果系统并发特别大,尤其是squid服务器,很有可能会超过1024。这时候就必须要调整系统参数,以适应应用变化。Linux有硬性限制和软性限制。可以通过ulimit来设定这两个参数。方法如下,以root用户运行以下命令:ulimit -HSn 4096

以上命令中,H指定了硬性大小,S指定了软性大小,n表示设定单个进程最大的打开文件句柄数量。个人觉得最好不要超过4096,毕竟打开的文件句柄数越多响应时间肯定会越慢。设定句柄数量后,系统重启后,又会恢复默认值。如果想永久保存下来,可以修改.bash_profile文件,可以修改 /etc/profile 把上面命令加到最后。(findsun提出的办法比较合理)

时间: 2024-10-01 06:42:05

linux的最大进程句柄数设置的相关文章

Linux下时区与时间设置方法

首先要说明的是我的系统是fedora,其他系统可能不完全相同. 1,时间保存在硬件实时钟(RTC)中,RTC由主板电池供电,即使关断电源也不会造成时间丢失. 2,系统启动时从RTC获取时间,这个步骤在rc.sysinit中做: a,首先从/etc/sysconfig/clock中获取RTC相关参数UTC/ARC/SRM.UTC为true表示RTC保存的时间是UTC时间,false表示保存的是本地时间.ARC与SRM的含义参考hwclock的manpage,一般false即可: b,根据上面获取的

关于Map和Reduce最大的并发数设置

关于Map和Reduce最大的并发数设置 博客分类: 测试 hadoop&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; 一.环境 1.hadoop 0.20.2 2.操作系统 Linux 二.设置 1.因为hadoop的集群所有的机器不可能完全的配置一样,所以,不同节点机器上并发的最大map和reduce数量最好也不要相同. 2.在对应的节点机器上修改mapreduce-sit.xml文件,添加参数如下: <

sharly浅谈虚拟主机linux系统下的安全设置

美国虚拟主机大都使用Linux操作系统,因此当用户在使用美国虚拟主机的时候,Linux系统的安全问题就成为了使用者最为关心的问题,毕竟谁都希望自己操作的是一个稳定又安全的系统. 什么是Linux呢?Liunx的官方定义:"Linux是一种UNIX操作系统的克隆,它(的内核)由Linux Torvalds以及网络上组织松散的黑客队伍一起从零开始编写而成.LINUX的目标是保持和POSIX的兼容."众所周知,Linux是一种开放源代 码的操作系统,由于它的自由开放性和技术先进性,顺应了广大

一台Linux或UNIX机器上设置多个DB2系统

在DB2 for Linux, UNIX,和Windows Version 8之前,SAP客户只能在一台物理机器上安装每个DB2 版本的一个拷贝,因为安装路径是硬编码的.尽管 DB2 Version 8 提供了替换的修订包映像,但是这些映像只用于测试,在生产环境中 SAP 不支持它们. 对于 DB2 9,客户可以在一台物理机器上安装多个 DB2 软件拷贝.数据库的安装是相互独立的.它们可以是不同级别的,可以安装在任何有效路径上.每个拷贝可以独立更新,而不会相互影响.所有装有 DB2 9 的 SA

Linux系统网卡绑定的设置方法

 Linux系统网卡绑定的设置方法   简介 端口绑定就是将多个物理网卡绑定为一个逻辑网卡;根据模式不同可以网卡绑定的作用可分为提升吞吐量和热备份两个主要作用,一般都是提升吞吐量.另外需要bonding内核模块的支持. 配置 挂载模块 修改模块挂载配置文件vim /etc/modprobe.conf alias bond0 bonding options bond0 mode=balance-alb miimon=100 use_carrier=0 修改网卡参数 添加bond0配置vim /et

linux中iptables防火墙怎么设置

当新配置了一台linux的服务器时,如果需要配置iptables,一般按照以下命令进行配置: 一,安装并启动防火墙 [root@linux ~]# /etc/init.d/iptables start 当我们用iptables添加规则,保存后,这些规则以文件的形势存在磁盘上的,以CentOS为例,文件地址是/etc/sysconfig /iptables,我们可以通过命令的方式去添加,修改,删除规则,也可以直接修改/etc/sysconfig/iptables这个文件就行了. 1.加载模块 /s

Linux系统下Telnet的设置方法

  Linux系统下Telnet的设置方法 Linux系统下Telnet服务的配置步骤: 一.安装Telnet软件包(通常要两个) 1. Telnet-clIEnt (或 Telnet),这个软件包提供的是 Telnet 客户端程序; 2. Telnet-server ,这个软件包提供的是 Telnet 服务器端程序; 安装之前先检测是否这些软件包已安装,方法如下: [root@echo root]#rpm –q Telnet或[root@wljs root]#rpm –q Telnet-cli

oracle trc 文件-各位数据大神麻烦帮我分析下这个oracle的trc文件,最大游标数设置的为1000

问题描述 各位数据大神麻烦帮我分析下这个oracle的trc文件,最大游标数设置的为1000 *** 2014-01-10 09:52:31.526*********START PLSQL RUNTIME DUMP************Got internal error Exception caught in pl l run-time while running PLSQLGot ORA-1000 while running PLSQLPACKAGE BODY FPM.GET_PARAME

Linux中字符模式下设置和删除环境变量?

Linux中字符模式下设置和删除环境变量? bash下 设置:export 变量名=变量值删除:unset 变量名 csh下 设置:setenv 变量名 变量值删除:unsetenv 变量名