too many files open

too many files open

在ubuntu上开了服务端,在window上开了2000个连接去连server. 结果提示 too many files open错误:
解决方法是: ulimit -n 4096
{
  个人体会:注意,一定要在同一个terminal 下运行这个命令
   很容易找到这个解决方法,于是我打开了另一个terminal, 输入了这个命令,哈哈,结果当然还是不行,原来ulimit -n 4096只是改变当前terminal的  limit
   Note this has no much relation to system max files (/proc/sys/fs/file-max).
}

网上相关资料
-----------------------------------------------------------------------------------------------

I had similar problem. Quick solution is :

ulimit -n 4096

explanation is as follows - each server connection is a file descriptor. In CentOS, Redhat and Fedora, probably others, file user limit is 1024 - no idea why. It can be easily seen when you type: ulimit -n

Note this has no much relation to system max files (/proc/sys/fs/file-max).

In my case it was problem with Redis, so I did:

ulimit -n 4096 redis-server -c xxxx

in your case instead of redis, you need to start your server.

----------------------------------------------------------------------------------------------------

linux下Too many open files问题

2011-01-21 14:42:13
执行:ulimit -n
应该会显示默认值1024
执行:ulimit -n 8192
但是ulimit直接修改的数字,在系统重启后会重置,所以还要修改:
1、/etc/security/limits.conf,在里面加上:
* soft nofile 8192
* hard nofile 20480
2、/etc/pam.d/login,里面加上:
session required /lib/security/pam_limits.so

----------------------------------------------------------------------------------------------------
ps:这个有好多知识点可以学
linux Too many open files in system (2008-01-25 15:12)
分类: AIX


登陆数据库出现错误:ORA-12537: TNS:connection closed
于是登陆操作系统
[root@CCN-BJ-3-578 ~]# su - oracle
su: /bin/bash: Too many open files in system
[root@CCN-BJ-3-578 ~]#
检查报警日志没有发现任何错误。
[root@CCN-BJ-3-578 .ssh]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
pending signals                 (-i) 1024
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
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 73728
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[root@CCN-BJ-3-578 .ssh]#
查看最大可以打开的文件数量
[root@CCN-BJ-3-578 fs]# cat /proc/sys/fs/file-max
65536
查看各个进程打开的文件数据量
[root@CCN-BJ-3-578 home]# lsof -n |awk '{print $2 " " $3}'|sort|uniq -c |sort -nr|more
  64387 18885 oracle
     56 2669 oracle
     53 2667 oracle
     50 2693 oracle
     。。。
18885 明显异常

[root@CCN-BJ-3-578 ~]# ps -ef|grep 18885
oracle   18885     1  0 Jan24 ?        00:00:19 ./linux
root     10241 10049  0 13:45 pts/2    00:00:00 grep 18885
发现oracle用户在执行一个linux文件
查找该文件
[root@CCN-BJ-3-578 home]# find / -name linux
/u01/app/oracle/product/10.2.0/db_1/jdk/include/linux
/u01/app/oracle/product/10.2.0/db_1/oui/lib/linux
/usr/java/jdk1.5.0_11/sample/jnlp/jreinstaller/build/linux
/usr/java/jdk1.5.0_11/include/linux
/usr/java/jdk1.5.0_11/demo/jvmti/hprof/src/linux
/usr/X11R6/lib/Server/include/linux
/usr/X11R6/lib/Server/modules/linux
/usr/X11R6/lib/Server/modules/drivers/linux
/usr/X11R6/lib/Server/modules/input/linux
/usr/X11R6/lib/modules/linux
/usr/X11R6/lib/modules/drivers/linux
/usr/X11R6/lib/modules/input/linux
/usr/share/terminfo/l/linux
/usr/share/doc/ntp-4.2.0.a.20040617/build/hints/linux
/usr/share/systemtap/runtime/relayfs/linux
/usr/include/linux
/usr/src/kernels/2.6.9-22.EL-hugemem-i686/include/linux
/usr/src/kernels/2.6.9-22.EL-hugemem-i686/include/config/logo/linux
/usr/src/kernels/2.6.9-22.EL-i686/include/linux
/usr/src/kernels/2.6.9-22.EL-i686/include/config/logo/linux
/usr/src/kernels/2.6.9-22.EL-smp-i686/include/linux
/usr/src/kernels/2.6.9-22.EL-smp-i686/include/config/logo/linux
/usr/lib/perl5/5.8.5/i386-linux-thread-multi/linux
/usr/lib/bcc/include/linux
/usr/lib/dietlibc/include/linux
/home/oracle/.ssh/ /linux
由于其它都是root用户的,可以确定是/home/oracle/.ssh/ /linux正在执行
[root@CCN-BJ-3-578 ~]# cd /home/oracle/.ssh/
[root@CCN-BJ-3-578 .ssh]# cd " "
[root@CCN-BJ-3-578  ]# pwd
/home/oracle/.ssh/
[root@CCN-BJ-3-578  ]# ll
总用量 1572
-rwxr-xr-x  1 oracle dba    188  1月 24 22:46 2
-rwxr-xr-x  1 oracle dba    188  1月 24 22:46 3
-rwxr-xr-x  1 oracle dba    188  1月 24 22:46 4
-rwxr-xr-x  1 oracle dba   2467 2005-02-21  auto
-rwxr-xr-x  1 oracle dba    182  1月 24 22:46 born___.seen
-rwxr-xr-x  1 oracle dba    182  1月 24 22:46 born__.seen
-rwxr-xr-x  1 oracle dba     58  1月 24 22:46 born_.seen
-rwxr-xr-x  1 oracle dba 463188 2004-10-17  darwin
-rwxr-xr-x  1 oracle dba 582960  1月 24 22:46 freebsd
-rwxr-xr-x  1 oracle dba     34  1月 24 22:46 LinkEvents
-rwxr-xr-x  1 oracle dba 497561 2005-02-21  linux
-rwxr-xr-x  1 oracle dba      0  1月 25 13:00 mech.levels
-rwxr-xr-x  1 oracle dba      6  1月 24 22:46 mech.pid
-rw-r--r--  1 oracle dba      0  1月 25 13:00 mech.session
-rwxr-xr-x  1 oracle dba   3669  1月 19 13:23 mech.set
drwxr-xr-x  2 oracle dba   4096  1月 24 22:44 randfiles
-rwxr-xr-x  1 oracle dba      0  1月 19 13:10 TiGeR02.seen
-rwxr-xr-x  1 oracle dba      0  1月 19 13:10 TiGeR03.seen
[root@CCN-BJ-3-578  ]#

问题原因找到。


你可能感兴趣的:(too many files open)