![在 Linux 中更改 JVM 进程的进程优先级](https://linux22.com/image/640197/%E5%9C%A8%20Linux%20%E4%B8%AD%E6%9B%B4%E6%94%B9%20JVM%20%E8%BF%9B%E7%A8%8B%E7%9A%84%E8%BF%9B%E7%A8%8B%E4%BC%98%E5%85%88%E7%BA%A7.png)
我可以通过服务器 [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 性能爆发出一定的“性能”。