代码之家  ›  专栏  ›  技术社区  ›  Vladimir Dyuzhev

在VM(VirtualBox和VMware)下,Weblogic启动缓慢(11分钟)

  •  17
  • Vladimir Dyuzhev  · 技术社区  · 16 年前

    我正在为我的开发/构建团队设置一个虚拟机映像。在这个VM中,Weblogic域应该正在运行。我使用Ububtu服务器发行版,wls9.2MP3+ALSB。

    一切正常,相当快,但在开始时间的WLS停止两次,为一个可测量的时间量。两站总延误约10分钟。对于部署需要重新启动服务器的任务,这非常烦人-(

    睡眠时间不是恒定的,有时服务器启动很快,有时很快,有时10分钟或更长。

    有趣的是,如果我在查看停止的服务器时按Enter键,它会更快地唤醒,有时会在几秒钟之后。WLST(weblogicjythonshell)在VM中执行时也会挂起一段时间。但它对进入没有反应。

    以下是服务器输出(仅针对一个案例):

    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.>
    

    这是第二个,同样是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>
    

    更新

    我想我找到了轨迹:一定是兰登种子。这可能解释了为什么生成键盘事件会释放服务器。我已进行线程转储,其中一个线程处于可运行状态,但正在等待:

    "[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)
    
    4 回复  |  直到 12 年前
        1
  •  21
  •   Vladimir Dyuzhev    16 年前

    解决了的

    Weblogic使用SecureRandom初始化安全子系统。默认情况下,SecureRandom使用/dev/uradom设备。由于某些原因,在VM下读取这个设备经常会停止。生成控制台事件有助于创建更多的随机性,并释放WLS。

    出于测试目的,我更改了jre/lib/security/java.security文件:

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

    因为我们不在VMs中测试任何安全性东西,所以重复的seed对我们来说是完全正确的。

        2
  •  10
  •   twh1st    13 年前

    如果您的企业标准应用程序服务器没有更改二进制文件的权限,您可以添加一个JVM标志以覆盖应该使用的随机生成器。例如。:

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

        3
  •  6
  •   Ruan    14 年前

    此后,Oracle创建了一个与此相关的Metalink注释 FMW配置向导在Linux虚拟环境中非常慢。WLS服务器的启动也非常慢[编号1344974.1]

    解决方案1 1) 下载并安装以下rpm:rng-utils-2.0-1.14.1.fc6.x86\u 64.rpm。有关下载详细信息,请与您的供应商联系。 2) 按以下步骤启动随机发生器:

    默认情况下,Linux上似乎有一个对/dev/random的依赖关系,它会阻塞直到生成足够的随机性。没有鼠标和键盘连接的虚拟服务器可能会严重阻塞。在上面的命令中,输入来自unblocking/dev/uradom,因此等待随机性不会成为应用程序的瓶颈。

        4
  •  1
  •   Chris Jefferson    11 年前

    rngd . 在具有硬件RNG的现代系统上,这将产生足够的熵。

    推荐文章