昨天,oracle 用户尝试通过 ssh 登录时出现错误“错误:do_exec_pty:fork:资源暂时不可用”。在我增加 nproc 软限制后,他登录了。然后我开始阅读有关软限制和硬限制的信息,并以此为基础线答案“硬限制是软限制的上限“”。
为什么操作系统不能自己管理软限制并“稍微”改变软限制以允许用户通过 ssh 登录?
oracle soft nproc 8096
oracle hard nproc 49152
答案1
除了增加你的上限之外,更切题的问题可能是为什么我应该增加我的最大值吗?什么时候?
- 如果 Oracle 有 8096 个任务同时运行,这是正常的且是预期的结果吗?
- DBA 是否解释过为什么会出现这种情况以及是什么情况导致的?
- 您是否同意这种行为对于此数据加载而言应该是正常的?
如果是的话,您可以在了解任务数量的意义的情况下增加限制,因为您已将其考虑到其配置的运行设计中。
对于大多数工作负载来说,默认限制往往会设置得异常高,如果您超出了这些限制,我首先要问的是您为什么这样做,以及是否有另一种方式可以完成您正在做的事情,而不会消耗太多资源。
您应该将软限制视为用户识别其正在运行的任何异常并通过手动增加它来做出响应(从而可能理解为什么资源如此之大)或修复消耗如此多资源的根本问题的一种手段。
此外,有些程序在启动时会自动提高硬限制以外的限制(查看 MySQL 打开文件限制)。同样,正如其设计预期的那样,它会超出大多数正常的工作负载。