关于ulimit -a 显示的文件打开句柄数的含义 | |
| |
来源: ChinaUnix博客 日期: 2007.08.17 09:50 (共有条评论) 我要评论 | |
ulimit 我经常用了,还经常设置一些参数,尤其是open file,当时的理解是:openfile设置为多大,此用户就只能最大打开这么多文件。我还经常给客户讲课,尤其是邮政的客户,讲课我都是这么讲的。我纳闷这到底是谁最先告诉我是这么解释的? [fante@fante ~]$ 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) 3959 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) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 3959 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited file locks (-x) unlimited 昨天才知道确切的意义:在Linux下,我们使用ulimit -n 命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面)。系统默认值1024。 以前也遇到过,某些用户比如weblogic用户,登录后提示“too many files open”,原来是某个进程打开的文件数过多。这个进程是由哪个用户打开的,需要修改这个用户的“open file”参数。 下面命令可以看到系统中进程打开文件数的一个排序: lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more [root@lvs191 ~]# lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more 64 18563 63 18632 63 18583 62 18617 61 18561 60 18565 [root@lvs191 ~]# ps -ef|grep 18563 oracle 18563 1 0 Aug15 ? 00:00:07 ora_lgwr_orcl 其中第一行是打开的文件句柄数量,第二行是进程号。得到进程号后,我们可以通过ps命令得到进程的详细内容。可以查看到这个18563的进程是oracle的一个进程。 一般情况下http一类的进程可能会打开文件数比较大,这样就需要将“open file”参数调大即可: ulimit -HSn 4096 Linux有硬性限制和软性限制。可以通过ulimit来设定这两个参数。H指定了硬性大小,S指定了软性大小,n表示设定单个进程最大的打开文件句柄数量。 如果想让用户登录即修改“open file”参数,有两种方法: 1、修改系统配置文件/etc/security/limits.conf,在最后添加 work soft nofile 4096 work soft nofile 4096 2、将命令添加到/etc/profile组后,这样所有用户登录都会改变 |
关于ulimit -a 显示的文件打开句柄数的含义
最新推荐文章于 2023-10-11 22:54:43 发布