web-dev-qa-db-ja.com

VM(VirtualBoxおよびVMware)の下でWeblogicの起動が遅い(11分)

(解決済み!システムランダムジェネレーターを偽造することにより、以下を参照)

開発/ビルドチーム用にVMイメージをセットアップしています。その中でVM Weblogicドメインが実行されているはずです。UbubtuサーバーディストリビューションWLSを使用しています。 9.2MP3 + ALSB。

すべてが正常に動作し、非常に高速ですが、開始時に、WLSは測定可能な時間の間2回停止します。合計2回の停車は、約10分の遅延になります。展開でサーバーの再起動が必要なタスクの場合、非常に面倒です。 :

スリープ時間は一定ではありません。サーバーの起動が非常に速い場合もあれば、10分以上かかる場合もあります。

興味深いことに、停止したサーバーを見ながらEnterキーを押すと、サーバーの起動がはるかに速くなり、場合によっては数秒後に起動します。 WLST(Weblogic Jython Shell)も、VMで実行するとかなりの時間ハングします。ただし、Enterには反応しません。

---(VMでWLSを実行している開発者がいるはずです。他の開発者も同じ問題を抱えているのでしょうか?誰かがそれを解決できましたか?

サーバーの出力は次のとおりです(念のため):

Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_12-b04)
Java HotSpot(TM) Client VM (build 1.5.0_12-b04, mixed mode)
Starting WLS with line:
/shared2/beahome/jdk150_12/bin/Java -client   -Xmx256m  -XX:MaxPermSize=128m  -Xverify:none  -da -Dplatform.home=/shared2/beahome/weblogic92
 -Dwls.home=/shared2/beahome/weblogic92/server -Dwli.home=/shared2/beahome/weblogic92/integration  -Dweblogic.management.discover=true  -Dwl
w.iterativeDev= -Dwlw.testConsole= -Dwlw.logErrorsToConsole= -Dweblogic.ext.dirs=/shared2/beahome/patch_weblogic923/profiles/default/sysext_
manifest_classpath -Dweblogic.management.username=admin -Dweblogic.management.password=wlsadmin -Dweblogic.Name=LOGMGR-admin -Djava.security
.policy=/shared2/beahome/weblogic92/server/lib/weblogic.policy   weblogic.Server
<1-Apr-2010 12:47:22 o'clock PM GMT-05:00> <Notice> <WebLogicServer> <BEA-000395> <Following extensions directory contents added to the end
of the classpath:
/shared2/beahome/weblogic92/platform/lib/p13n/p13n-schemas.jar:/shared2/beahome/weblogic92/platform/lib/p13n/p13n_common.jar:/shared2/beahom
e/weblogic92/platform/lib/p13n/p13n_system.jar:/shared2/beahome/weblogic92/platform/lib/wlp/netuix_common.jar:/shared2/beahome/weblogic92/pl
atform/lib/wlp/netuix_schemas.jar:/shared2/beahome/weblogic92/platform/lib/wlp/netuix_system.jar:/shared2/beahome/weblogic92/platform/lib/wl
p/wsrp-common.jar>
<1-Apr-2010 12:47:22 o'clock PM GMT-05:00> <Info> <WebLogicServer> <BEA-000377> <Starting WebLogic Server with Java HotSpot(TM) Client VM Ve
rsion 1.5.0_12-b04 from Sun Microsystems Inc.>
<1-Apr-2010 12:47:23 o'clock PM GMT-05:00> <Info> <Management> <BEA-141107> <Version: WebLogic Server 9.2 MP3  Mon Mar 10 08:28:41 EDT 2008
1096261 >
<1-Apr-2010 12:47:25 o'clock PM GMT-05:00> <Info> <WebLogicServer> <BEA-000215> <Loaded License : /shared2/beahome/license.bea>
<1-Apr-2010 12:47:25 o'clock PM GMT-05:00> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING>
<1-Apr-2010 12:47:25 o'clock PM GMT-05:00> <Info> <WorkManager> <BEA-002900> <Initializing self-tuning thread pool>
<1-Apr-2010 12:47:25 o'clock PM GMT-05:00> <Notice> <Log Management> <BEA-170019> <The server log file /shared2/wldomains/beaadmd/LOGMGR/ser
vers/LOGMGR-admin/logs/LOGMGR-admin.log is opened. All server side log events will be written to this file.>

ここに最初の遅延があり、最大5分です...

<1-Apr-2010 12:53:21 o'clock PM GMT-05:00> <Notice> <Security> <BEA-090082> <Security initializing using security realm myrealm.>
<1-Apr-2010 12:53:24 o'clock PM GMT-05:00> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STANDBY>
<1-Apr-2010 12:53:24 o'clock PM GMT-05:00> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to STARTING>
<1-Apr-2010 12:53:25 o'clock PM GMT-05:00> <Notice> <Log Management> <BEA-170027> <The server initialized the domain log broadcaster success
fully. Log messages will now be broadcasted to the domain log.>
<1-Apr-2010 12:53:25 o'clock PM GMT-05:00> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to ADMIN>
<1-Apr-2010 12:53:25 o'clock PM GMT-05:00> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RESUMING>
<1-Apr-2010 12:53:28 o'clock PM GMT-05:00> <Notice> <Security> <BEA-090171> <Loading the identity certificate and private key stored under t
he alias adminuialias from the jks keystore file /shared2/wldomains/beaadmd/LOGMGR/CustomIdentity.jks.>

そして、これが2番目で、これも最大5分です。

<1-Apr-2010 12:58:56 o'clock PM GMT-05:00> <Notice> <Security> <BEA-090169> <Loading trusted certificates from the jks keystore file /shared
2/wldomains/beaadmd/LOGMGR/CustomTrust.jks.>
<1-Apr-2010 12:58:57 o'clock PM GMT-05:00> <Notice> <Server> <BEA-002613> <Channel "DefaultSecure" is now listening on 192.168.56.102:7002 f
or protocols iiops, t3s, ldaps, https.>
<1-Apr-2010 12:58:57 o'clock PM GMT-05:00> <Notice> <Server> <BEA-002613> <Channel "Default" is now listening on 192.168.56.102:8012 for pro
tocols iiop, t3, ldap, http.>
<1-Apr-2010 12:58:57 o'clock PM GMT-05:00> <Notice> <WebLogicServer> <BEA-000331> <Started WebLogic Admin Server "LOGMGR-admin" for domain "
LOGMGR" running in Development Mode>
<1-Apr-2010 12:58:57 o'clock PM GMT-05:00> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING>
<1-Apr-2010 12:58:57 o'clock PM GMT-05:00> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode>

[〜#〜] update [〜#〜]

私はトラックを持っていると思います:それはランドンシードの初期化でなければなりません。これは、キーボードイベントを生成するとサーバーが解放される理由を説明している可能性があります。スレッドダンプを作成しました。1つのスレッドは実行可能状態ですが、待機しています。

"[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=1 tid=0x0a7b06e8 nid=0xeda runnable [0x728a500
0..0x728a6d80]
        at Java.io.FileInputStream.readBytes(Native Method)
        at Java.io.FileInputStream.read(FileInputStream.Java:194)
        at Sun.security.provider.NativePRNG$RandomIO.readFully(NativePRNG.Java:185)
        at Sun.security.provider.NativePRNG$RandomIO.implGenerateSeed(NativePRNG.Java:202)
        - locked <0x7d928c78> (a Java.lang.Object)
        at Sun.security.provider.NativePRNG$RandomIO.access$300(NativePRNG.Java:108)
        at Sun.security.provider.NativePRNG.engineGenerateSeed(NativePRNG.Java:102)
        at Java.security.SecureRandom.generateSeed(SecureRandom.Java:475)
        at weblogic.security.AbstractRandomData.ensureInittedAndSeeded(AbstractRandomData.Java:83)
18

[〜#〜]解決済み[〜#〜]

WeblogicはSecureRandomを使用してセキュリティサブシステムを初期化します。 SecureRandomは、デフォルトで/ dev/urandomデバイスを使用します。何らかの理由で、VMの下でこのデバイスを読み取ると、頻繁に停止します。コンソールイベントを生成すると、ランダム性が高まり、WLSが解放されます。

テストの目的で、jre/lib/security /Java.securityファイルを変更しました。

securerandom.source=file:/tmp/big.random.file

Weblogicが15秒で起動するようになりました。

VMでセキュリティ関連のものをテストしていないので、シードを繰り返してもまったく問題ありません。

20

バイナリを変更する権限のないエンタープライズ標準アプリサーバーがある場合は、JVMフラグを追加して、ランダムジェネレーターを使用する必要があるものを上書きできます。例えば。:

-Djava.security.egd=file:/dev/./urandom

そうすれば、システム設定を変更する必要はありません。

8
twh1st

オラクルはその後、これに関連するメタリンクノートを作成しました。FMW構成Wizard Linux仮想環境では非常に遅いです。WLSサーバーの起動も非常に遅いです。[ID1344974.1]

.。

解決策11)次のrpmをダウンロードしてインストールします:rng-utils-2.0-1.14.1.fc6.x86_64.rpm。ダウンロードの詳細については、ベンダーにお問い合わせください。 2)ランダムジェネレーターを次のように起動します。rngd-r/ dev/urandom -o/dev/random -t 1

デフォルトでは、Linuxの/ dev/randomに依存しているようで、十分なランダム性が生成されるまでブロックされます。マウスとキーボードが接続されていない仮想サーバーは、大幅にブロックされる可能性があります。上記のコマンドでは、入力はブロック解除/ dev/urandomから取得されるため、ランダム性の待機がアプリケーションのボトルネックになることはありません。

6
Ruan

rngdをインストールしてみてください。ハードウェアRNGを備えた最新のシステムでは、これにより十分なエントロピーが作成されます。

0
Chris Jefferson