黑龙江省建设教育信息网站,高端办公室装修效果图,wordpress主题 添加自定义菜单,wordpress怎么设置两个域名最近#xff0c;我在Java应用程序服务器安装上进行了分析/调整#xff0c;以识别瓶颈并修复它们。 在此过程中#xff08;调整#xff09;#xff0c;最常见的操作是在系统加载时检索许多线程转储。 请记住#xff0c;重载#xff08;在某些情况下#xff09;可能会产生… 最近我在Java应用程序服务器安装上进行了分析/调整以识别瓶颈并修复它们。 在此过程中调整最常见的操作是在系统加载时检索许多线程转储。 请记住重载在某些情况下可能会产生副作用可能会导致我们得出错误的结论。 因此“控制”负载比实际重负载更可取。 当系统处于加载状态时您会注意到许多Java线程处于RUNNABLE状态但它们并未真正运行。 他们正在等待“ 某物 ”。 导致线程即使处于RUNNABLE状态也要等待的最常见原因如下 CPU资源不足 当运行的线程多于虚拟CPU时上下文切换内核OS作业和系统的其他进程会有延迟是正常的。 RAM不足 如果您的RAM不足则您的系统将使用swap这总是一个问题。 I / O 当线程处于read或write调用中并等待数据写入或读取时该线程处于RUNNABLE状态但实际上并未运行。 网络慢 这与3有关因为网络慢得多它将导致与网络操作有关的“正在运行”线程的较长延迟。 流程优先级 流程可以具有不同的优先级。 如果JVM进程以低优先级运行则其他进程将在CPU中更频繁地运行。 您可以使用top GNU Linux prstat Solaris 任务管理器 Windows之类的工具来执行此操作。 垃圾收集GC 运行GC时JVM的所有线程GC线程除外在某些地方世界停止都处于冻结状态。 在这些时候GC正在删除无用的引用对象因此释放了堆的可用内存大小但仅限于此。 我们必须使用这样的策略例如CMS或G1以最小化停靠点的频率和持续时间。 完全由JVM引起的唯一原因是最后一个GC活动。 所有其他方面主要取决于操作系统和硬件。 因此我们还必须始终监视系统操作系统和硬件而不仅仅是JVM。 您必须记住Java不使用/遵循其自己的线程模型。 此外当前的JVM热点使用本机OS线程并且线程调度由底层OS实现。 参考处于Java集成和源博客的优点的 JCG合作伙伴 Adrianos Dadis并没有真正运行处于RUNNABLE状态的Java Thread 。 翻译自: https://www.javacodegeeks.com/2012/08/java-thread-at-runnable-state-is-not.html