在 Linux 中更改 JVM 进程的进程优先级

在 Linux 中更改 JVM 进程的进程优先级

我可以通过服务器 [linux] 上的 nice 更改 JVM 进程优先级吗?我希望我的 JVM 进程能够使用操作系统的最大资源。

标准做法是什么?人们是否专门针对某个进程调整 Linux 操作系统以获得最佳性能?

答案1

正常的公平共享方法适用于大多数工作负载,调整优先级以提高性能并不常见。调整进程优先级可能会产生不良的副作用。在某些情况下,例如批处理,应用程序会得到特别优化。

您需要 root 权限才能为 JVM 赋予高于正常优先级的优先级。如果进程受 I/O 限制,这可能是可以接受的。如果进程受 CPU 限制,您可能会发现它会降低所有其他进程的性能。这将包括您用来提高优先级的进程。

它对nice批处理很常见,因此它们不使用交互式进程可能使用的资源。在确定是否应提高 CPU 速度时,可以设置 CPU 速度监视器以忽略此类进程。如果批处理进程很好,这通常在运行进程的脚本中完成。

现代内核还允许您为进程设置 IO 优先级。检查man ionice。如果您的 JVM 受 IO 限制,这可能是合适的。

我确实以极好的方式运行我的boinc进程。这是因为我只想使用原本不会用于这些进程的 CPU 周期。它们通常使用超过 90% 的可用周期。

答案2

设置一个有利的“nice”级别将使该进程优先于其他进程获得 CPU 时间。您只能根据您的 CPU 性能爆发出一定的“性能”。

相关内容