在Ubuntu下启动java应用时,在控制台输出会抛出打开太多的文错误信息。
open too many file
应用无法启动,google了下,是因为应用打开的文件句柄数超出了系统的限制。使用命令:
ulimit -n
输出1024
解决方案:
1.调整Ubuntu下的文件句柄数。
查看这篇文章:
http://blog.csdn.net/zhaiqi618/article/details/5616998 中的
1. #vi /etc/profile,增加ulimit -HSn 65536 将文件句柄数修改到10240,但执行后,使用
source /etc/profile之后,提示:
bash: ulimit: open files: 无法修改 limit 值: 不允许的操作
于是查找到这篇:
写道
为啥root用户是可以的?普通用户又会遇到这样的问题?
看一下/etc/security/limits.conf大概就会明白。
linux对用户有默认的ulimit限制,而这个文件可以配置用户的硬配置和软配置,硬配置是个上限。
超出上限的修改就会出“不允许的操作”这样的错误。
于是我用root权限修改了/etc/security/limits.conf文件,增加以下内容:
* soft nproc 10240
* hard nproc 10240
* soft nofile 10240
* hard nofile 10240
*代表domain,影响到的域,我这里设置了全部。
soft/hard :代表软性或者硬性限制
nproc:max number of processes 设置最大的进程数
nofile:max number of open files 设置最大的文件句柄数
再编辑/etc/pam.d/common-session,加入一行,之所以加入这行,是因为需要在下次重启的时候,能够让用户直接修改
/etc/profile中的文件句柄数生效。http://www.ccs.neu.edu/home/battista/articles/winbind/pam.html (具体这个文件是做什么用的,我在下次再讨论下。)
session required pam_limits.so
再编辑/etc/profile文件,加入刚才的内容:
此时执行:
source /etc/profile 仍然会提示:
bash: ulimit: open files: 无法修改 limit 值: 不允许的操作
这是因为需要重启电脑,否则更改不会立即生效。
检查:
ulimit -a 这个是列出当前系统的所有内容限制
ulimit -n 这个是列出当前系统能够打开最大的文件句柄数。
重启电脑之后,就可以使用root方式进行修改/etc/profile中的ulimit -HSn 后的数字,再执行source /etc/profile,就可以马上看到效果了。
分享到:
相关推荐
当一个应用(如Apache、MySQL、Java应用服务器等)试图打开超过其最大文件句柄数限制的文件时,就会遇到“Too many open files”的错误。这不仅会阻止进一步的文件操作,还可能引起应用崩溃或服务不可用的情况。 ##...
linux 系统级别的能够打开的文件句柄的数file-max命令 Linux 系统中,file-max 命令用于设置系统级别的能够打开的文件句柄的数量,这个值决定了 Linux 内核可以分配的文件句柄的最大数量。当系统中的文件句柄数量...
修改文件句柄数在Linux下,我们使用ulimit -n 命令可以看到单个进程能够打开的最大文件句柄数量(socket连接也算在里面)。系统默认值1024。 对于一般的应用来说(象Apache、系统进程)1024完全足够使用。但是如何象...
从打开的文件句柄获得文件的路径.根据HANDLE获得文件路径
总结来说,解决Too many connections的问题需要综合考虑Linux系统层面的文件句柄限制和MySQL配置层面的最大连接数设置。同时,通过ulimit命令来调整每个进程的资源限制,也是保证系统稳定运行的一个重要手段。调整...
`henum.exe`则是编译后的可执行程序,可以直接运行在Windows系统上,列举出所有已打开文件的句柄及其对应的文件路径。 在处理过程中,`ntstatus.h`和`ntdll.h`是重要的头文件,它们提供了`NtQuerySystemInformation...
在IT行业中,尤其是在编程领域,文件句柄是一个重要的概念,它是操作系统用来标识和管理打开文件的一种方式。在易语言中,处理文件句柄的操作能够帮助开发者更高效地进行文件操作。"易语言根据文件句柄取文件路径"是...
当业务系统尝试连接数据库时,如果数据库的连接数已经达到上限,那么新的连接请求就无法建立,这时就会抛出“Too many connections”错误信息。数据库连接数上限的限制通常由数据库的最大连接数决定,这个参数在...
在 Linux 系统中,进程句柄数设置是一个重要的参数,它决定了单个进程能够打开的最大文件句柄数量,包括 socket 连接。系统默认值为 1024,这对于一般的应用来说已经足够使用。但是,对于需要处理大量请求的应用,如...
总的来说,掌握在易语言中根据文件句柄获取文件路径的方法是进行文件操作的基础,通过不断学习和实践,你可以更熟练地运用易语言来解决实际的编程问题。同时,利用社区资源,如源码分享站,可以加速学习进程,提高...
通过上述步骤,我们可以有效地解决AIX环境下Weblogic遇到的“Too many open files”问题。这不仅涉及了系统层面的资源限制调整,还包括了应用级别的优化措施。在实际操作过程中,还需要根据具体情况灵活调整,确保...
总的来说,了解和掌握查看进程打开文件句柄的方法,是提升系统管理能力和解决技术问题的重要技能。通过火绒剑这样的工具,我们可以直观地看到系统中各个进程对文件的操作,这对于优化系统性能、排查问题以及保障系统...
在Unix和Linux操作系统中,系统资源的管理是一个关键任务,其中就包括了限制一个用户或进程可以打开的最大文件数。这个限制通常被称为“最大打开文件数”,它由`ulimit`命令来控制。`ulimit -n`命令用于查看或设置一...
在Linux系统中,对文件的管理是其核心功能之一,其中“打开文件数”是一个重要的概念,涉及到系统资源管理和性能优化。本文将深入探讨Linux如何管理打开文件数,包括查看当前打开文件数的方法、理解系统限制以及如何...
这个"列出打开了某个文件句柄的进程,找出谁在使用某个文件.zip"的主题,就是关于如何在编程环境中(可能是C++,因为文件列表中有Cpp文件)查找并显示那些持有一个特定文件句柄的进程。 在Windows API中,有几个关键...
本文将深入探讨“演示ClientSocket反复连接进程句柄数不变”这个主题,以及如何解决由此引发的问题,如句柄数增加、系统资源耗尽和死机。 首先,让我们理解什么是ClientSocket。ClientSocket是Delphi中的一个组件,...
在IT行业中,尤其是在系统编程和低级操作中,文件号(File Number)和文件句柄(File Handle)是两个重要的概念。它们都是操作系统用来标识和管理文件的方式,但使用方式和场景有所不同。本文将深入探讨这两个概念,...
当一个进程打开一个文件时,操作系统会给这个文件分配一个句柄,进程通过句柄来操作这个文件,而不是直接使用文件路径。句柄的存在使得操作系统的资源管理更为高效和安全。 Unlock Wizard的核心功能就是检测并关闭...
`ZwQuerySystemInformation`结合`SystemProcessInformation`可以揭示进程所持有的所有文件句柄,这对于排查问题、审计文件访问行为或者实现高级监控工具至关重要。 在实现这一功能时,开发者通常需要以下步骤: 1. ...