关键字:
Novell SUSE Linux Enterprise Server 9
Novell SUSE Linux Enterprise Server 9 Service Pack 3
Open files rlimit 1024 reached for uid XXXX
现象:
在Novell SUSE Linux Enterprise Server 9 的环境下
/var/log/messages 中出现
Open files rlimit 1024 reached for uid XXXX
那么恭喜你,你的机器很快就有可能down..我这边遇到的现象是重启。
具体日志为:
nbcsa kernel: open files rlimit 1024 reached for uid 0 pid 8003
我的服务器是IBM的X3650..出现这样的日志后,基本3-4天就会重启。
重启的时间很规律,都是凌晨的4:15左右。
解决办法:
你可以按照,以下方式来解决
http://www.novell.com/support/php/search.do?cmd=displayKC&docType=kc&externalId=3302273&sliceId=1&docTypeID=DT_TID_1_1&dialogID=63021602&stateId=0%200%2063025219
我使用了第一种方式:
Modify the file "/etc/init.d/cron" adding the line "ulimit -n 65536" (without quotes)
改了之后,故障依旧。
我觉得自己改的有些唐突,没有搞清状况就动手了。
首先要搞清楚 pid 8003 是哪个进程。
但ps -ef|grep 8003,找不到这个进程。。
于是我写了一个shell,每分钟执行一次进行捕捉,但依旧找不到8003。
于是。。。
我就采用了第二种方式:
Use the "/etc/initscript" file
As stated in the man pages for initscript (man initscript) is possible to create the file "/etc/initscript" that can be used to set things like ulimit and umask default values for every process. The following initscript will increase the Hard limits for the open files to 65536 for every process:
# Increase the hard file descriptor limit for all processes
# to 65536. The soft limit is still 1024, but any unprivileged
# process can increase it's soft limit up to the hard limit
# with "ulimit -Sn xxx" (needs a 2.2.13 or later Linux kernel).
ulimit -Hn 65536
# Execute the program.
eval exec "$4"
监测了3个礼拜后,故障得到解决。
遗留问题:
uid o pid 8003,到底是哪个进程。
为何此进程不受PAM影响.(/etc/security/limits.conf 在装oracle9i时,已经被orarun修改过)
分享到:
相关推荐
在IT行业中,我们经常遇到各种错误,其中之一是“too many open files”。这个错误通常发生在操作系统限制了同一时间可打开的文件数量,而程序试图超出这个限制时。在本篇文章中,我们将深入探讨这个问题,理解其...
worker_rlimit_nofile 655350; 这将解决 Nginx 连接过多的问题,使其支持高并发。 四、影响 MySQL 并发连接数 ulimit 命令不仅影响 Nginx,还会影响 MySQL 的并发连接数。提高文件连接数设置,也能提高 MySQL ...
在Linux系统中,rlimit机制是用于控制进程资源限制的关键组件。通过rlimit,系统管理员或用户能够设定进程可以消耗的资源上限,这对于防止资源过度消耗、提高系统稳定性及安全性至关重要。本文将深入探讨rlimit的...
Unix getrlimit 和 setrlimit 的简单接口。 如需进一步参考,请参阅和 。 rlimit, (setf rlimit) 函数rlimit资源 -> 当前,最大值 ... +RLIMIT-NOFILE+或 + +RLIMIT-NUMBER-OF-FILES+ +RLIMIT-NPROC+或+RLIMIT-NU
设置后你的操作系统和Nginx可以处理比“ulimit -a”更多的文件,所以把这个值设高,这样nginx就不会有“too many open files”问题了。 worker_rlimit_nofile 100000; #全局错误日志及PID文件 #error_log logs/...
#rlimit 包 rlimit 包含有助于复杂速率限制场景的实用程序。 RateLimiter 结构通过使用以固定速率滴答的股票代码和等待重置之前允许的滴答数的指定限制的组合来工作。 这是因为我的应用程序使用的 API 允许以 50 次...
一:500错误 1、500 Internal Server Error 内部... b、如果是too many open files,修改nginx的worker_rlimit_nofile参数,使用ulimit查看系统打开文件限制,修改/etc/security/limits.conf,还是出现too many open
参数`resource`是一个枚举值,代表要查询的资源类型,如`RLIMIT_AS`(最大虚拟内存)、`RLIMIT_CPU`(最大CPU时间)等。`rlim`是一个指向`struct rlimit`结构体的指针,该结构体包含两个成员:`rlim_cur`(软限制)和`...
- **s700_80011.11 thread nostop for NFS, rlimit, Ufalloc fix**:针对 NFS 的线程不停止、资源限制和 Ufalloc 修复的补丁。 - **HP-UX 11i v2:** - **Hardware Enablement (B.11.23.0505.022b)**:适用于 HP-...
"too-many-files"这个标题暗示了我们可能遇到了一个与处理众多文件相关的问题,这在Linux或Unix类操作系统(如macOS)中尤为常见,因为它们通常使用命令行工具,如Shell,来管理文件和目录。在Shell环境中,处理大量...
- **`ulimit`**:`expand_files`函数检查当前进程的文件描述符数量是否超过了由`RLIMIT_NOFILE`设置的限制。如果超过,返回`-EMFILE`错误,表示“Too many open files”。 - **`max_files`**:`get_empty_filp`...
提高这个值可以允许Nginx处理更多的并发连接,避免“too many open files”的错误。 3. **events模块**: - **worker_connections**:设置每个工作进程的最大并发连接数,不应超过系统允许的最大socket连接数。 -...
增加此值可以防止在高负载下出现too many open files的错误,但同样需要注意操作系统的限制。 ### 总结 在优化Nginx服务器的过程中,应根据实际应用场景和服务器硬件资源进行合理配置。上述配置中,HTTP模块和...
- `rlimit_files = 1024`:限制进程可以打开的最大文件描述符数。 - `rlimit_core = 0`:限制核心转储文件的大小,0表示不允许创建。 以上只是`php-fpm.conf`配置文件中的一部分选项,实际文件中还包含更多细节和...
7. **权限与安全**:学习Unix的用户和组概念,理解文件权限(rwx)和特殊权限(setuid、setgid、sticky),以及如何通过setuid和setgid程序实现权限提升。 8. **设备驱动编程**:虽然不适用于初学者,但对高级...
通过执行`ulimit -a`命令,我们可以看到各项资源限制的设定,其中包括了`open files (-n)`这一项,它显示的是系统允许一个进程同时打开的最大文件数。例如,这里显示为1024,这意味着默认情况下,一个进程最多只能...
Nginx 配置文件主要分成四部分... worker_rlimit_nofile # 指定所有 worker 进程能够打开的最大文件数 worker_cpu_affinity 设置 worker 进程的 CPU 粘性,以避免进程在 CPU 间切换带来的性能消耗。如 worker_cp
- **建议值:** `max`参数应与`worker_rlimit_nofile`一致,`inactive`参数根据实际负载情况进行调整。 - **配置示例:** `open_file_cache max=65535 inactive=60s;` **9. **`open_file_cache_valid`**:** - **...
具体到core文件,需要使用RLIMIT_CORE作为resource参数。这两个函数的声明如下: ```c #include int getrlimit(int resource, struct rlimit *rlptr); // 获取当前进程的限制值 int setrlimit(int resource, ...
3. worker_rlimit_nofile指令用于设置Nginx进程所能够打开的最大文件句柄数。当Nginx作为Web服务器时,它需要打开很多文件句柄来处理并发连接。设置这个参数能够保证Nginx不会因为打开过多文件句柄而耗尽资源。这里...