在配置Debian系统的ulimit
时,有一些常见的误区需要注意。以下是一些典型的误区及其解决方案:
只有/etc/initscript
是足够的:
/etc/security/limits.conf
)来设置资源限制,例如crontab
中的任务可能会覆盖ulimit
的设置。解决方案是在/etc/security/limits.conf
中定义相关的limit
值。/etc/security/limits.conf中的*
号通配并不匹配root用户:
/etc/security/limits.conf
中的*
号通配符不会匹配root用户。如果通过console登录root用户,会导致登录后的会话使用默认的limit
值,进而影响后续通过SSH登录启动的应用。解决方案是在/etc/security/limits.conf
中为root用户单独设置limit
值。某些Systemd版本会导致max open file
设置为infinity时只有65536:
DefaultLimitNOFILE=infinity
,1号进程及其子进程的max open file
仍然只有65536。解决方案是直接定义明确的DefaultLimitNOFILE
值或升级到Systemd的新版本。不同PAM版本会有不同的默认limit
值处理逻辑:
limit
值处理逻辑。例如,Debian 9的PAM版本会使用FD_SETSIZE
宏定义中的值,而Debian 8则会使用容器的1号进程的soft nofile limit
值。解决方案是在容器镜像中打包正确的/etc/security/limits.conf
文件。ulimit设置只在当前shell中生效:
ulimit
命令设置的资源限制只在当前shell中有效,重启shell或机器后设置会丢失。解决方案是在/etc/profile
或用户的.bashrc
文件中添加ulimit
设置,然后执行source /etc/profile
或.bashrc
使修改即时生效。忽略了系统级别的句柄限制:
ulimit
,还有/proc/sys/fs/file-max
参数。如果系统句柄数量设置过小,即使设置了ulimit
,也会受限于这个参数。解决方案是修改/etc/sysctl.conf
文件,增加fs.file-max
的值。误以为Linux只能支持65535个连接:
通过了解这些常见误区并采取相应的措施,可以更好地配置和管理Debian系统的ulimit
,避免因配置不当导致的资源限制问题。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>