服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

为什么(或如何)由root使用的打开文件描述符的数量超过了ulimit -n?

我们的服务器最近耗尽了文件描述符,并且对此我有一些问题。 ulimit -n应该给我打开的文件描述符的最大数量。 这个数字是1024.我通过运行lsof -u root |wc -l检查打开的文件描述符的数量,得到了2500 fds。 这大大超过了1024,所以我猜想这意味着数字1024是每个进程,而不是每个用户,就像我一样。 那么,我运行lsof -p$PidOfGlassfish|wc -l并得到1300.这是我没有得到的部分。 如果ulimit -n不是每个用户或每个进程的最大进程数,那么它有什么好处呢? 它不适用于root用户吗? 如果是这样,我怎么才能得到有关用完文件描述符的错误信息? 编辑:我可以从ulimit -n理解的唯一方法是,如果它应用打开文件的数量(如bash手册中所述),而不是文件句柄的数量(不同的进程可以打开相同的文件)。 如果是这种情况,那么只需列出打开文件的数量(在/上擦除,从而排除内存映射文件)是不够的 : lsof -u root |grep /|sort -k9 |wc -l #prints '1738' 要真正看到打开文件的数量,我需要过滤名称列上只打印唯一的条目。 因此,以下可能是更正确的: lsof -u root |grep /|sort -k9 -u |wc -l #prints '604' 上面的命令需要从lsof输出以下格式: java 32008 root mem REG 8,2 11942368 72721 /usr/lib64/locale/locale-archive vmtoolsd […]