Performance Java-如何确定当前负载

Performance Java-如何确定当前负载,performance,memory-management,metrics,Performance,Memory Management,Metrics,如何确定当前服务器负载?我是否需要在这里使用JMX来获取cpu时间,或者是否有其他方法来确定cpu时间,或者类似的方法 我基本上只希望在服务器空闲时运行后台作业。我将使用Quartz每30分钟启动一次作业,检查服务器负载,如果负载较低则继续,如果负载繁忙则停止 一旦我可以确定如何测量负载(cpu时间、内存使用),我就可以在不同的点上测量这些,以确定我想要如何配置服务器 沃尔特我想你已经回答了你自己的问题。如果您想要一个纯Java解决方案,那么您所能做的最好的事情就是 您可以找出有多少个线程,主机

如何确定当前服务器负载?我是否需要在这里使用JMX来获取cpu时间,或者是否有其他方法来确定cpu时间,或者类似的方法

我基本上只希望在服务器空闲时运行后台作业。我将使用Quartz每30分钟启动一次作业,检查服务器负载,如果负载较低则继续,如果负载繁忙则停止

一旦我可以确定如何测量负载(cpu时间、内存使用),我就可以在不同的点上测量这些,以确定我想要如何配置服务器


沃尔特我想你已经回答了你自己的问题。如果您想要一个纯Java解决方案,那么您所能做的最好的事情就是


您可以找出有多少个线程,主机有多少个处理器,每个线程使用了多少时间,并从中计算CPU负载。

我想您已经回答了自己的问题。如果您想要一个纯Java解决方案,那么您所能做的最好的事情就是


您可以找出有多少个线程,主机有多少个处理器,每个线程使用了多少时间,并从中计算CPU负载。

以可移植的方式进行操作很难,这可能很大程度上取决于您的平台

另一种方法是将Quartz作业配置为在低优先级线程中运行。Quartz允许您这样做,如果服务器忙,那么线程应该被拖到包的后面,直到它可以运行而不碍事


此外,如果工作中的负载尖峰,那么VM将自动节制您的批处理作业,直到负载再次下降。它应该是自我调节的,这是通过手动检查当前负载无法实现的。

以便携方式进行操作很难,这可能很大程度上取决于您的平台

另一种方法是将Quartz作业配置为在低优先级线程中运行。Quartz允许您这样做,如果服务器忙,那么线程应该被拖到包的后面,直到它可以运行而不碍事


此外,如果工作中的负载尖峰,那么VM将自动节制您的批处理作业,直到负载再次下降。它应该是自我调节的,这是手动内省当前负载无法实现的。

感谢您的评论,我使用的是Quartz作业,因此我将尝试低优先级线程来了解其工作原理。我真的不需要知道负载是什么,我只想让它成为列表中的最低优先级。谢谢你的评论,我正在使用Quartz作业,所以我将尝试低优先级线程,看看它是如何工作的。我真的不需要知道负载是什么,我只想让它成为列表中的最低优先级。谢谢,我会尝试一下。我并不真正关心服务器负载是什么,只是它的优先级最低,最终会运行。谢谢,我会试一试。我并不真正关心服务器负载是什么,只是它的优先级最低,最终会运行。