如何在 Solaris 10 中设置 ulimit

如何在 Solaris 10 中设置 ulimit

我通常使用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.profileWeb 服务器所有者的文件中设置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

你可能会发现这个链接很有趣:调整操作系统

相关内容