2010-04-01 35 views
16

(SOLVED! Bằng cách giả HỆ THỐNG RANDOM GENERATOR, xem dưới đây)WebLogic là chậm để bắt đầu (11mins) dưới VM (VirtualBox và VMware)

Tôi đang thiết lập một hình ảnh VM cho dev của tôi/xây dựng đội . Bên trong máy ảo đó, một miền Weblogic sẽ được chạy. Tôi sử dụng bản phân phối máy chủ Ububtu, WLS 9.2MP3 + ALSB.

Mọi thứ hoạt động OK, khá nhanh, nhưng tại thời điểm bắt đầu, WLS dừng hai lần trong một khoảng thời gian có thể đo lường. Hai điểm dừng trong tổng số tiền trễ khoảng 10 phút. Đối với các nhiệm vụ mà triển khai yêu cầu khởi động lại máy chủ, nó rất khó chịu. :-(

thời gian ngủ phải là không đổi, đôi khi máy chủ khởi động rất nhanh, đôi khi cái như vậy, đôi khi 10 phút hoặc lâu hơn.

Thú vị rằng nếu tôi nhấn Enter khi nhìn vào máy chủ dừng lại, nó đánh thức lên nhanh hơn nhiều, đôi khi sau vài giây WLST (Weblogic Jython shell) cũng bị treo trong một thời gian khá lâu khi được thực thi trong VM.Thông tin này không phản ứng lại với Enter.

Đây phải là một số nhà phát triển chạy WLS với một máy ảo. Tôi tự hỏi nếu những người khác có cùng một vấn đề? Có ai đó có thể giải quyết nó không?

Đây là sản lượng máy chủ (chỉ dành riêng cho một trường hợp):

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

Ở đây chúng ta có sự chậm trễ đầu tiên, lên đến 5 phút ...

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

Và đây là lần thứ hai, một lần nữa lên đến 5 phút.

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

CẬP NHẬT

Tôi nghĩ rằng tôi đã có những ca khúc: nó phải là khởi tạo hạt randon. Điều đó có thể giải thích tại sao tạo ra các sự kiện bàn phím phát hành máy chủ. Tôi đã thực hiện các bãi chứa thread, và một thread ở trạng thái Runnable, nhưng chờ đợi:

"[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) 
+1

Cảm ơn bạn đã đăng cập nhật nhưng bạn thực sự nên đăng giải pháp của mình làm câu trả lời và chấp nhận nó. –

+0

Cảm ơn bạn, sẽ làm. Tôi cảm thấy có một chút tinh thần không lành mạnh để tự trả lời :-) –

+1

Thực ra, nó được khuyến khích, đặc biệt nếu bạn tìm ra giải pháp (thậm chí bạn có thể sử dụng SO làm blog kỹ thuật cá nhân, sử dụng kiểu nguy hiểm). –

Trả lời

16

SOLVED

WebLogic sử dụng SecureRandom init hệ thống phụ an ninh. SecureRandom theo mặc định sử dụng thiết bị/dev/urandom. Vì một lý do nào đó, việc đọc thiết bị này trong máy ảo sẽ dừng lại khá thường xuyên. Việc tạo các sự kiện giao diện điều khiển giúp tạo thêm ngẫu nhiên và phát hành WLS.

Đối với mục đích thử nghiệm, tôi đã thay đổi jre/lib tập tin/security/java.security:

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

WebLogic bây giờ bắt đầu trong vòng 15 giây.

Vì chúng tôi không kiểm tra bất kỳ nội dung bảo mật nào trong máy ảo của mình, hạt giống lặp lại hoàn toàn ổn đối với chúng tôi.

6

Oracle đã tạo một ghi chú Metalink liên quan đến Trình hướng dẫn cấu hình FMW này rất chậm trên môi trường ảo của Linux. Startup của máy chủ WLS cũng rất chậm. [ID 1344974.1]

...

Giải pháp 1 1) Tải xuống và cài đặt rpm sau: rng-utils-2.0-1.14.1.fc6.x86_64.rpm. Liên hệ với nhà cung cấp của bạn để biết chi tiết tải xuống. 2) Khởi động trình tạo ngẫu nhiên như sau: rngd -r/dev/urandom -o/dev/random -t 1

Theo mặc định, có vẻ như phụ thuộc vào/dev/random trên Linux sẽ chặn cho đến khi đủ ngẫu nhiên được tạo ra. Các máy chủ ảo không có chuột và bàn phím được đính kèm có thể chặn đáng kể. Trong lệnh trên, đầu vào được lấy từ unblock/dev/urandom do đó việc chờ đợi ngẫu nhiên không trở thành một nút cổ chai của ứng dụng.

+1

CẢNH BÁO: Chạy rngd -r/dev/urandom sẽ dẫn đến bất kỳ khóa nào (pgp, ssl, v.v.) mà bạn tạo ra không an toàn, vì vậy hãy sử dụng cẩn thận! –

8

Trong trường hợp bạn có máy chủ ứng dụng chuẩn doanh nghiệp không có đặc quyền thay đổi tệp nhị phân, bạn có thể thêm cờ JVM để ghi đè lên trình tạo ngẫu nhiên. Ví dụ:

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

Bằng cách đó bạn không phải thay đổi bất kỳ cài đặt hệ thống nào.

+0

Lưu ý rằng điều này có thể dẫn đến các vấn đề bảo mật, bạn đang sử dụng RNG không an toàn. –

0

Thử cài đặt rngd. Trên các hệ thống hiện đại với phần cứng RNG, điều này sẽ tạo ra đủ entropy.

Các vấn đề liên quan