1

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、混合モード)

4

2 に答える 2

5

まず、実際に CPU を消費していることを確認します。アプリケーションをプロファイリングしている場合、メソッドが実際にはブロックしているときに、このメソッドに割り当てられた時間を費やしているように見えることがあります。ほとんどのプロファイラーは、ネイティブ コードに多くの時間を費やしている (多くの CPU を消費する) メソッドと、ブロックしている (ほとんど CPU を消費しない) メソッドの違いを伝えるのに問題があります。

古いバージョンの Java にはバグがあり、セレクターがスピンする可能性がありました。つまり、他の方法では正しく機能しているにもかかわらず、ビジー ループでブロックせずにセレクターを返しません。Javaの新しいバージョンではこれが修正されていると思います。Java 6 update 35 または Java 7 update 7 を試して、問題が解決するかどうかを確認します。

接続数が数百未満の場合は、ブロッキング NIO を使用する方がはるかに単純なため、NIO を使用することを好みます。

于 2012-11-07T08:47:41.187 に答える
0

私は同じ問題を抱えていました.ntpサービスを停止して修正し、DATEを手動で設定してntpサービスを再起動しました:

        /etc/init.d/ntp stop
        date -s "$(date)"
        /etc/init.d/ntp start
于 2013-08-16T11:29:07.807 に答える