我有两个不同的机器上运行的一段Java代码,但在其中一台Linux机器上,代码使用了大量的CPU(接近100%的CPU使用率)。 在另一台机器上,相同的代码使用较less的CPU(3%到4%)。 CPU使用率高的机器是更强大的机器,更多的CPU和更多的内存。 这已经发生在最近,高CPU使用率的机器性能已经大大降低。 我想知道如果有人有任何想法,为什么这样的事情可能会发生,背后的可能原因等等任何猜测? 没有最近的硬件更改,没有最近的代码更新。
如果您怀疑硬件故障,请检查dmesg是否有任何输出。 根据硬件供应商的不同,可能会有某种types的IPMI实施(如戴尔的DRAC),并带有Web界面,可以显示您的硬件故障。
说实话,这可能是你的应用程序中的一个错误。 “添加计时器钩子,find瓶颈”。
LB请求发送到NODE1 | NODE1 HW SPEC1 | NODE1 APP部署|
LB请求发送到NODE2 | NODE2 HW SPEC2 | NODE2 APP部署|
如果确实全部检查出来,则需要考虑应用程序中请求中发送的数据模式发生了变化。
仔细检查LB用来分配呼叫的scheme,validation它不依赖于数据。
在JVM上运行jProfiling,在OS上执行Top或类似的操作,监视mysql日志文件。