我通常使用pam_limits.so,并/etc/security/limits.conf以一套ulimits文件大小,CPU时间等,为普通用户中运行Ubuntu我的服务器日志记录。使用 Solaris 10 执行类似操作的最佳方法是什么?
我认为它是使用 完成的/etc/system,但我不知道要添加到文件中的内容,或者它是否是正确的文件。我对ulimit -f不走这.profile条路线的设置特别感兴趣。
在 linux 上运行的服务器应用程序通常需要大量的打开文件处理程序,例如。HBase ulimit , Hadoop epoll 限制
这个 wiki 条目应该作为 Linux 文件限制配置的文档。
请描述您的配置在哪个 Linux 发行版下有效,因为不同的供应商配置不同。
更新基于 lstvan 答案:
对于希望自动执行此操作的人,至少在 Ubuntu 服务器上,您可以将其放入您的机器安装脚本中:
echo 'fs.file-max = 65000' > /etc/sysctl.d/60-file-max.conf
echo '* soft nofile 65000' > /etc/security/limits.d/60-nofile-limit.conf
echo '* hard nofile 65000' >> /etc/security/limits.d/60-nofile-limit.conf
echo 'root soft nofile 65000' >> /etc/security/limits.d/60-nofile-limit.conf
echo 'root hard nofile 65000' >> /etc/security/limits.d/60-nofile-limit.conf
Run Code Online (Sandbox Code Playgroud) 我有以下几行 /etc/security/limits.conf
* soft nofile 32768
* hard nofile 65536
root soft nofile 32768
root hard nofile 65536
Run Code Online (Sandbox Code Playgroud)
该pam_limits.so文件必须在以下各文件。
/etc/pam.d/common-session
/etc/pam.d/cron
/etc/pam.d/login
/etc/pam.d/sshd
/etc/pam.d/su
/etc/pam.d/sudo
Run Code Online (Sandbox Code Playgroud)
ulimit -n 登录时(以及启动时启动的服务)仍然显示 1024。
我错过了什么?
在我的机器上,打开文件数量的硬限制设置为 1024。
那么如何在不重启的情况下增加打开文件限制的设置?
当一个进程产生一个子shell时,它是如何ulimit继承的?
是按用户、按外壳还是按组合?
具体来说,这是在某些托管 AIX 设备上的 HP 服务器自动化作业由于软硬件之间的交互而失败的情况下发现的ulimits。简而言之,代理(root在处理来自 SA 的命令时作为子外壳运行并生成子外壳)无法处理某些作业,因为其子外壳正在访问ulimit.
增加ulimit解决了问题,但如何ulimit继承以及是否需要提高软限制或硬限制(或两者)的问题仍然悬而未决。
这个问题的正确答案是什么?它可能是特定于 AIX 的,也可能是跨 Unix/Linux 变体的——以哪个更好。
最近,我在EAGAIN一些异步代码中遇到了错误,这让我仔细查看了ulimit设置。虽然我清楚地了解某些限制,例如nofile,但其他人对我来说仍然很困惑。
很容易找到关于如何设置这些的资源,但我找不到任何文章来准确解释每个设置的内容以及它如何影响系统。
取自的定义/etc/security/limits.conf并不是不言自明:
- core - limits the core file size (KB)
- data - max data size (KB)
- fsize - maximum filesize (KB)
- memlock - max locked-in-memory address space (KB)
- nofile - max number of open files
- rss - max resident set size (KB)
- stack - max stack size (KB)
- cpu - max CPU time (MIN)
- nproc - max number of processes
- as …Run Code Online (Sandbox Code Playgroud) 我有一个问题,即进程的最大文件大小与用户的 ulimit 不同。这个进程的日志文件基本没有增长超过524288
过程:
less /proc/20238/limits
Limit Soft Limit Hard Limit Units
...
Max file size 524288 524288 bytes
...
Run Code Online (Sandbox Code Playgroud)
极限:
ulimit -a
...
file size (blocks, -f) unlimited
...
Run Code Online (Sandbox Code Playgroud)
据我所知,启动进程的脚本中没有设置 ulimit 。
我也看过,/etc/security/limits.conf但只有条目nofile和nproc
问:你知道还有什么可以设置文件大小限制吗?
如果有任何帮助,这里是启动过程的擦洗版本:
nohup java $WALLET_OPTS -DOracleName="FileSender" -DAPP=FILE_SDR -Dapp_props=$APP_PROPS -Dfile_name=${FILE_NAME} -XX:+UseParallelGC -XX:+DisableExplicitGC -XX:-EliminateLocks $APPMEM -DDEBUG_MQSERVER=TRUE -classpath $类路径 com.some.path.FileSdrSrv 10 1>> $APP_LOG/filesdr.log 2>&1 &
java 文件也没有设置 ulimit。
我正在关注将 Solr 投入生产 | Apache Solr 参考指南 8.5,但是无法克服重新启动solr服务时的警告:
# service solr restart
*** [WARN] *** Your open file limit is currently 1024.
It should be set to 65000 to avoid operational disruption.
If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh
*** [WARN] *** Your Max Processes Limit is currently 1024.
It should be set to 65000 to avoid operational disruption.
If you no longer wish to …Run Code Online (Sandbox Code Playgroud) Ubuntu 似乎有 1024 个打开文件描述符的默认限制。Nginx 在我做的一些负载测试中抱怨已达到最大数量并且服务器基本上无法使用。
我正在测试一项服务,该服务必须每秒维持 2-3K 请求,并且每个请求都将保存到一个文件(或可能是另一个存储,如 mysql 等)。这些文件将在 x 分钟内从服务器中清除。
如果我运行 ulimit -n 并增加打开文件描述符的数量,这有什么后果?它是否使 o/s 留出更多内存来管理文件描述符,或者还有更多内存?
我对此很头疼,我不明白为什么它不起作用。我希望有人可以阐明这一点,或者如果失败了,请给我一些调查途径的建议。
我有一个 Red Hat 7.3 系统(不要问),希望增加用户的打开文件限制wls81。我以为我只是无法控制它,但它越来越看起来好像我只遇到了我需要更改的用户的问题。我已将以下几行添加到/etc/security/limits.conf:
wls81 soft nofile 10100
wls81 hard nofile 10240
madhatta soft nofile 10100
madhatta hard nofile 10240
Run Code Online (Sandbox Code Playgroud)
pam_limits.so 据我所知,正在被正确调用:
[madhatta@server madhatta]$ sudo grep limits /etc/pam.d/*
/etc/pam.d/login:session required /lib/security/pam_limits.so
/etc/pam.d/sshd:session required /lib/security/pam_limits.so
/etc/pam.d/su:session required /lib/security/pam_limits.so
/etc/pam.d/system-auth:session required /lib/security/pam_limits.so
Run Code Online (Sandbox Code Playgroud)
当我以自己的身份 ssh 登录时,我获得了新的软限制,并且可以增加到硬限制:
desktop> ssh server
Last login: Thu May 10 13:20:13 2012 from a.b.c.d
[madhatta@server madhatta]$ ulimit -n
10100
[madhatta@server madhatta]$ ulimit -n 10200
[madhatta@server madhatta]$ ulimit -n
10200
[madhatta@server madhatta]$ ulimit -n …Run Code Online (Sandbox Code Playgroud)