应如何消除某个流程的所有潜在的人为资源限制?
我刚刚看到一个案例,其中服务器应用程序消耗资源,因此达到了某些限制。进入同一服务器等的其他 shell 都非常慢(等待某些东西为它们释放;即 prstat 启动 5 分钟)。这不是与 CPU/内存相关的问题,所以我认为这与 ulimits/项目有关。
已经设法将最大打开文件数设置为 500 000,这有点帮助。但是还有其他问题,我无法确定哪种资源已达到最大值。我可以让一些内部管理员检查一下,但我想理解我如何确保不会有任何限制!
如果您认为我走错了方向(最好弄清楚应该特别调整哪些限制等),请随时指出正确的方法。我懂技术方面的东西 - 只是 Solaris 10 让我头疼 :/
答案1
如果您想根据每个用户或每个组手动管理资源,Solaris 10 使用“项目”。
/etc/项目将列出现有设置,通常仅将“默认”项目的初始共享内存限制为 8GB。默认情况下,其他任何内容均不受限制。默认情况下,所有非 root 用户或系统用户均受“默认”项目的约束。id-p将显示用户属于哪个项目。
如果你怀疑 ulimits 起了作用,ulimit -a将列出您可以更改的当前用户限制。
但是,您描述的减速症状听起来像是物理限制,而不是配置限制。Solaris 10 现在管理自身非常灵敏。