繁体   English   中英

wowza java cpu使用率高

[英]wowza java high cpu usage

我对wowza中的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)Java HotSpot(TM)64位服务器VM(内部版本19.0-b09,混合模式)

我首先要检查它确实在消耗CPU。 如果要对应用程序进行性能分析,则在该方法实际上处于阻塞状态时,它似乎在此方法上花费了很多时间。 大多数探查器在分辨一种方法上花费了很多时间,这两种方法之间的区别是:在本机代码中分配时间(消耗大量CPU)和在阻塞性方法(消耗很少的CPU)之间进行分配。

较旧的Java版本具有可能导致选择器旋转的错误。 也就是说,即使在其他情况下它仍然可以正常运行,它也不会返回任何选择器而不会阻塞繁忙的循环。 我相信较新版本的Java已解决此问题。 我会尝试使用Java 6 update 35或Java 7 update 7来解决问题。

如果连接数少于几百个,我更喜欢使用阻塞NIO,因为IMHO更为简单。

我遇到了同样的问题,我通过停止ntp服务修复了该问题,并手动设置了DATE并重新启动ntp服务:

        /etc/init.d/ntp stop
        date -s "$(date)"
        /etc/init.d/ntp start

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM