2009-02-10 47 views
19

Tại nơi làm việc của tôi, chúng tôi sử dụng Máy chủ WebLogic để lưu trữ một cổng thông tin doanh nghiệp. Mà là tốt.Tăng tốc thời gian khởi động của Máy chủ Weblogic

Tuy nhiên, gần đây tôi đã có cơ hội sử dụng Tomcat cho một số dự án phụ và tôi bị ấn tượng bởi sự khác biệt đáng kinh ngạc về tốc độ. Tomcat mất 3-5 giây để bắt đầu và 10-15 giây để triển khai một dự án cỡ trung bình. Wewblogic mất 3-5 phút để bắt đầu và tối đa 10 phút để triển khai. Điều này giết chết bất kỳ sự phát triển lặp lại nào.

Tôi có phải từ chức bản thân mình để nó bị chậm và cồng kềnh, hoặc có bất kỳ điều gì tôi có thể làm để tăng tốc độ không? Có ai có kinh nghiệm trong chuyện này không vậy?

+0

3-5 phút,!? Làm thế nào buồn – rbp

Trả lời

17

Bạn sẽ không thể biến con ếch thành công chúa. Tôi sẽ tự hỏi một chút về những lần khởi động cho weblogic - họ có vẻ hơi quá mức, bạn không chạy trên Linux bởi bất kỳ cơ hội?

Nếu bạn đang chạy lưu trữ lồng nhau (chiến tranh trong tai vv) và cũng có thể quét thư mục (hibernate, spring etc), bạn có thể thử giải nén tất cả cấu trúc phát nổ tương ứng trước khi triển khai; nó đã được biết đến để giúp đỡ một chút.

Tomcat chứa một tập con rất nhỏ các tính năng weblogic có. Chúng tôi phát triển trên cầu cảng nhưng triển khai trên weblogic cho môi trường chấp nhận/sản xuất và hoạt động này khá tốt. Bạn có thể làm tương tự với tomcat.

Tomcat là một thùng chứa khá nghiêm ngặt trong khi weblogic được khoan dung, vì vậy bạn thường sẽ chỉ gặp phải một số rắc rối khi triển khai lên weblogic, đặc biệt là miễn là bạn liên tục thực hiện cả hai.

Bạn cũng có thể sử dụng công cụ như javarebel để thực hiện triển khai nóng thực sự tiện lợi và tránh tất cả các lần khởi động lại đó.

+0

Thú vị. Tôi chắc chắn sẽ nhìn vào javarebel. Thật không may là tôi không thể triển khai Tomcat hoặc Jetty để phát triển ... Chúng tôi đang chạy Weblogic Portal, tiếc là dựa vào phần còn lại của hệ sinh thái BEA và dường như bị nghẹt thở mà không có nó. – levand

+0

Bạn có đang chạy weblogic trên linux không? Có một vấn đề rất mơ hồ với việc tạo số ngẫu nhiên trên Linux gây ra thời gian khởi động rất chậm của weblogic. Tôi có thể khai thác giải pháp nếu đó là trường hợp. – krosenvold

+1

+1 để đề cập đến javarebel (bây giờ gọi là jrebel) –

6

Như krosenvold cho biết, việc tạo số ngẫu nhiên có thể gây ra khởi động chậm.

Đề xuất từ ​​Oracle là sử dụng một trong các cờ -D bên dưới - chỉ trên các hệ thống phi sản xuất vì nó làm giảm bảo mật.

Sử dụng -Djava.security.egd = file: /// dev/urandom switch hoặc file:/dev /./ urandom cho lệnh bắt đầu WebLogic.

Thông tin trên được lấy từ http://download.oracle.com/docs/cd/E12839_01/doc.1111/e14772/weblogic_server_issues.htm#CIHIIBGJ

Nếu cờ -D không làm việc, nhìn vào các giải pháp sau đây: http://www.itonguard.com/20090313/weblogic-starts-slow/

1

Nếu bạn sử dụng hội thảo WebLogic, sau đó bạn chỉ cần xuất bản, không khởi động lại máy chủ ứng dụng khi thực hiện phát triển lặp lại.

0

Vui lòng kiểm tra xem thời gian khởi động kéo dài có thực sự do khởi động Máy chủ WebLogic hay không và thời gian khởi động của Cổng WebLogic.

2

WebLogic cũng có thể khởi động chậm trên Linux nếu nó kết nối với cơ sở dữ liệu và bạn chưa thiết lập DNS đúng cách.

Tùy thuộc vào thiết lập của bạn, bạn có thể chỉnh sửa /etc/resolv.conf và nhận xét dòng máy chủ tên. Điều này có thể làm giảm thời gian khởi động của WebLogic từ 20 phút xuống dưới một phút.

1

Trên vấn đề mức tiêu thụ bộ nhớ, bạn có thể thử đặt các tham số bộ nhớ của JVM được máy chủ WebLogic của bạn sử dụng. Đăng nhập vào WL Web Admin Console và vào Environment/Servers/[your server]/Configuration/Server Start và, trên "Arguments", thiết lập thứ gì đó như -Xms256m -Xmx256m sẽ thiết lập JVM ban đầu (Xms) và max (Xmx) kích thước heap lên 256 megabyte. Bạn sẽ muốn chơi xung quanh với những con số này và tìm các giá trị tốt nhất cho môi trường của bạn. Nhưng xin lưu ý rằng cá thể Eclipse của bạn cũng có thể tiêu tốn rất nhiều bộ nhớ.

Về thời gian khởi động, mặc dù lớn hơn một chút so với tôi mong đợi, chúng có vẻ ổn. Vấn đề này là rất thường xuyên, và tôi không nghĩ rằng bạn sẽ có thể chắc chắn giải quyết nó. WebLogic có nhiều tính năng hơn Tomcat, và điều này phản ánh trong các đặc tính khác của môi trường (như thời gian khởi động).

Tắt Weblogic sử dụng trình tạo số ngẫu nhiên trong khi khởi động. Bởi vì lỗi trong java nó đọc ‘randomness’ từ/dev/random./dev/random là các trình tạo số ngẫu nhiên rất tốt nhưng nó rất chậm. Phải mất 10 phút hoặc lâu hơn để tạo một số./dev/urandom không phải là tốt, nhưng nó là ngay lập tức. Java bằng cách nào đó ánh xạ/dev/urandom tệp đến/dev/ngẫu nhiên. Đó là lý do tại sao cài đặt mặc định trong $ JAVA_HOME/jre/lib/security/java.security là vô ích.

Các giải pháp có thể có: 1) Thêm “-Djava.security.egd = file:/dev /./ urandom” (/ dev/urandom không hoạt động) vào tham số java.

Tồi tệ hơn nhưng giải pháp làm việc là: 2) mv/dev/random /dev/random.ORIG; ln/dev/urandom/dev/random

3) Giải pháp tốt nhất là thay đổi $ JAVA_HOME/jre/lib/security/java.security Thay securerandom.source với

securerandom.source = file:/dev /./urandom

Sự cố này không xảy ra trong cửa sổ vì nó sử dụng triển khai khác nhau/dev/ngẫu nhiên.

Mất vài giây để khởi động máy chủ weblogic ngay bây giờ.

0

Vì Tomas F và krosenvold đề xuất nó có thể là cho trình tạo số ngẫu nhiên.

Trên khởi động chuẩn của WebLogic 12.2.1 Tôi nhận được tin nhắn này:

Disabling the CryptoJ JCE Provider self-integrity check for better startup performance. 
To enable this check, specify -Dweblogic.security.allowCryptoJDefaultJCEVerification=true 

Vì vậy, tôi đã chỉ định nó và nó cắt thời gian khởi động một nửa. Khoảng 13 giây trên một tên miền sạch sẽ.

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