我通常使用pam_limits.so
和/etc/security/limits.conf
来设置限制对于登录运行 Ubuntu 的服务器的普通用户来说,文件大小、CPU 时间等。使用 Solaris 10 做类似事情的最佳方法是什么?
我认为它是使用 完成的/etc/system
,但我不知道要向文件中添加什么,或者它是否是正确的文件。我特别感兴趣的是ulimit -f
无需遵循.profile
路线即可进行设置。
答案1
在 Solaris 上,您可以将此参数设置为系统范围的硬限制或软限制,或者可以对特定应用程序执行相同操作,以便它在其运行时空间中具有正确数量的打开文件描述符。
要使其成为系统范围的更改,/etc/system
请使用以下条目进行编辑
# Hard limit on file descriptors for single process
set rlim_fd_max = 4096
# Soft limit on the file descriptors for a single process
set rlim_fd_cur = 1024
注意:如果不rlim_fd_max
按上述设置,文件描述符或 nofiles 的默认值将是该rlim_fd_cur
值的一半。因此,最好同时设置它们。
如果您将 Solaris 项目用于应用程序空间(如 Oracle Database),则可以通过以下方式设置项目中的最大文件描述符:
projadd -U oracle -K “process.max-file-descriptor=(priv,4096,deny)” user.oracle
ulimit
此外,您还可以直接在应用程序所有者的 shell 启动文件中设置它。例如,可以通过ulimit
在.profile
Web 服务器所有者的文件中设置ulimit -s 32768
并从启动/关闭脚本中调用它来建立最大文件描述符。
正如您所见,有很多选项和方法可以实现这一点。
答案2
另外值得一提的是 plimit。它可以查看或设置已运行进程的限制。
# plimit 7028
7028: /usr/lib/gconfd-2 18
resource current maximum
time(seconds) unlimited unlimited
file(blocks) unlimited unlimited
data(kbytes) unlimited unlimited
stack(kbytes) 10240 unlimited
coredump(blocks) unlimited unlimited
nofiles(descriptors) 512 65536
vmemory(kbytes) unlimited unlimited
答案3
可以通过将 Web 服务器所有者的 .profile 中的 ulimit 设置为 ulimit -s 32768 来设置最大文件描述符
ulimit -n 32768 - 是正确的
答案4
你可能会发现这个链接很有趣:调整操作系统