wowza java高CPU使用率
问题描述:
我有关于在wowza CPU使用率的问题。wowza java高CPU使用率
这是可疑的线程。这个线程是高CPU。
SocketAcceptorIoProcessor-1.0 prio=10 tid=0x0000002a9fb53000 nid=0x2428 runnable [0x000000004f017000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:210)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
- locked <0x00000007d82ba4e8> (a sun.nio.ch.Util$2)
- locked <0x00000007d82ba4d8> (a java.util.Collections$UnmodifiableSet)
- locked <0x00000007d82ad450> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
at org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(Unknown Source)
at org.apache.mina.util.NamePreservingRunnable.run(Unknown Source)
at java.lang.Thread.run(Thread.java:662)
此线程花了高cpu。这是JDK的错误还是?
这是我的环境。
CentOS版本5.4(最终)
WowzaMediaServer-3.1.2
Java版本1.6.0_23 的Java(TM)SE运行时环境(建立1.6.0_23-B05) 的HotSpot的Java(TM) 64位服务器VM(内置19.0-b09,混合模式)
答
我首先会检查它是否真的耗费CPU。如果你正在分析应用程序,那么当方法实际上被阻塞时,它可能似乎花费在这个方法中的时间分配。大多数分析器都有问题,它们会告诉我们在本地代码中花费大量时间的方法(消耗大量CPU)和阻塞(CPU消耗非常少)的方法之间存在差异。
旧版本的Java有bug,可能会导致选择器旋转。即在繁忙的循环中它不返回选择器,即使它仍然正常工作。我相信新版本的Java已经修复了。我会尝试Java 6更新35或Java 7更新7,以查看它是否修复了您的问题。
如果少于几百个连接,我更喜欢使用阻塞NIO,因为它简单得多。
答
我有同样的问题,我有停止NTP服务的固定,然后手动设置日期和重启NTP服务:
/etc/init.d/ntp stop
date -s "$(date)"
/etc/init.d/ntp start
谢谢你的答复。我会尝试jdk7。 – samohan
我试了2个jdk版本jdk1.7.0_9和jdk1.6.0_37。但高CPU使用率仍然发生。这个线程有很多,需要很多时间和CPU。 – samohan
所以它很高,但不消耗一个CPU的100%? –