Chuẩn đoán Java theo cách của IBM - Phần 1: Giới thiệu công cụ chẩn đoán và theo dõi Java của IBM-Dump Analyzer

Vượt qua những tệp báo lỗi dài vô tận để đi tới trọng tâm của vấn đề

Các ứng dụng Java™ ngày càng trở nên phức tạp hơn; do đó, việc chẩn đoán các

vấn đề bên trong các ứng dụng này là một công việc không hề dễ dàng và có thể

cần nhiều công sức đối với một tổ chức dịch vụ bên ngoài (external service

organization). Một chỉ dẫn hữu ích và chính xác có thể góp phần tiết kiệm thời gian

và chi phí. Công cụ chẩn đoán và giám sát Java của IBM® - Dump Analyzer là

một công cụ thực hiện các phân tích cơ bản đối với một tệp kết xuất hệ thống được

định dạng (formatted system dump) và tạo ra m ột báo cáo ngắn gọn chỉ ra những

việc mà bạn cần làm tiếp theo.

Bài viết này giới thiệu Công cụ chẩn đoán và giám sát cho Java của IBM (IBM

Diagnostic and Monitoring Tools for Java) - Dump Analyzer và cung cấp một số

thông tin cơ bản về các loại vấn đề mà công cụ này có thể chẩn đoán. Nó giải thích

kiến trúc được sử dụng để xây dựng nên Dump Analyzer và cung cấp một số suy

nghĩ về hướng đi tương lai của công cụ

pdf22 trang | Chuyên mục: Java | Chia sẻ: dkS00TYs | Lượt xem: 2208 | Lượt tải: 0download
Tóm tắt nội dung Chuẩn đoán Java theo cách của IBM - Phần 1: Giới thiệu công cụ chẩn đoán và theo dõi Java của IBM-Dump Analyzer, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
pport Assistant (gọi tắt 
là ISA). ISA là có sẵn cho tất cả người dùng nội bộ của IBM và khách hàng bên 
ngoài Bạn có thể cài đặt Dump Analyzer với ISA như sau: 
1. Hãy chắc chắn là ISA phiên bản 3 được cài đặt. 
2. Để cài đặt Dump Analyzer, bạn nên cài đặt một sản phẩm plug-in mà nó có 
liên quan — ví dụ như The IBM Developer Kit cho Java. (Xem Tài nguyên 
để được hướng dẫn.) 
3. Khởi động lại máy khách ISA. Bây giờ bạn có thể cài đặt một công cụ plug-
in. 
4. Đi đến dịch vụ Update. Có 2 cách để thực hiện điều này: 
o Bấm chọn biểu tượng Updater ở trang Welcome. 
o Bấm chọn liên kết Updater ở thanh menu. 
5. Lựa chọn nhãn New Plug-ins và đợi cho ISA xây dựng danh mục các plug-
in có sẵn để cài đặt. 
6. Mở thư mục Common Component Tools. 
7. Chọn IBM Diagnostic and Monitoring Tools for Java - Dump Analyzer 
và cài đặt. 
Một khi bạn đã cài đặt Dump Analyzer, bạn có thể khởi động nó từ bên trong ISA: 
1. Khởi động lại ISA. 
2. Chọn Tools. 
3. Chọn một sản phẩm mà Dump Analyzer có sẵn — ví dụ IBM Developer Kit 
cho Java. 
4. Bấm chọn để khởi động công cụ IBM Diagnostic and Monitoring Tools 
for Java - Dump Analyzer. Màn hình của bạn sẽ giống như Hình 1: 
Hình 1. Dump Analyzer trong ISA 
Đây là cách bạn có thể phân tích một một hệ thống kết xuất có định dạng: 
1. Nhập tên đầy đủ của một hệ thống kết xuất có định dạng được phân tích. 
2. Bấm chọn Estimate Time để nhận được một ước tính sơ bộ khoảng thời 
gian thực hiện phân tích. 
3. Bấm chọn Analyze. Kết quả sẽ xuất hiện trong cửa sổ khi hoàn thành. 
Hình 2 cho thấy một ví dụ về các loại quan sát tóm tắt mà Dump Analyzer xuất ra: 
Hình 2. Ví dụ về quan sát tóm lược 
Chọn Analyze Another để trở lại màn hình giống như trong Hình 1, với tên tập tin 
kết xuất nhập trước đó vẫn còn nhập vào hộp văn bản đầu tiên. 
Selecting an analyzer module 
Trường được gán nhãn Optional Parameters trong màn hình dẫn ra trong Hình 1 
và 2 điều khiển các bộ phân tích sẽ được thực hiện, cũng như lựa chọn thời gian 
chạy khác. Thông thường, bạn nên để trống trường này; điều này sẽ làm cho tập 
lệnh phân tích mặc định, general.sml, được thực thi. Tập lệnh này sẽ kiểm tra các 
dạng phổ biến nhất của các vấn đề. Tuy nhiên, nếu bạn thực sự biết loại cụ thể của 
vấn đề mà bạn đang điều tra hoặc nếu bạn cần phải làm việc trên một vấn đề mà 
không được tích hợp vào các tập lệnh mặc định, bạn rõ ràng có thể chỉ định một 
hoặc nhiều bộ phân tích được gọi. Những bộ phân tích có thể được gọi với tên của 
tập tin kịch bản cụ thể hoặc tên lớp của module phân tích cụ thể. Gõ -help trong 
trường Optional Parameters sẽ liệt kê nhiều tùy chọn thời gian chạy hơn nữa. 
Trong phiên bản đầu tiên của công cụ, chỉ có một số rất nhỏ các phân tích thí 
nghiệm đã được cung cấp ngoài kịch bản mặc định. Chúng bao gồm: 
 DefaultDumpReport (Tên lớp: 
com.ibm.dtfj.analyzer.deal.basic.DefaultDumpReport): Phân tích này tạo ra 
một báo cáo khá chi tiết về tất cả các khía cạnh chính của tình trạng máy ảo, 
tương tự như những gì có thể được tìm thấy trong một tập tin Javacore 
(nhưng thêm một số thông tin DTFJ đặt trưng). 
 ListZipJars (Tên lớp: com.ibm.dtfj.analyzer.deal.extended.ListZipJars): 
Phân tích thử nghiệm này cố gắng khám phá tất cả các tập tin zip và JAR 
đang mở trong máy ảo này, có thể cung cấp cái nhìn sâu sắc vào bất kỳ thư 
viện tùy chỉnh được sử dụng bởi các ứng dụng hoặc bên trung gian. 
 SystemProperties (Tên lớp: 
com.ibm.dtfj.analyzer.deal.extended.SystemProperties): Phân tích thử 
nghiệm này quét máy ảo và in ra giá trị hiện tại của tất cả các tài sản hệ 
thống Java được định nghĩa trong máy ảo đó. 
 WASBasicInfo (Tên lớp: com.ibm.dtfj.analyzer.deal.was.WASBasicInfo): 
Đây là một phiên bản rất sơ bộ và thực nghiệm của một phân tích thể hiện rõ 
việc sử dụng công cụ này để kiểm tra trạng thái của một WebSphere 
Application Server thời gian chạy thực hiện bên trong máy ảo. 
Những bộ phân tích khác hiện đang được cung cấp chủ yếu là để minh họa cho tính 
linh hoạt của công cụ. Phiên bản sắp tới sẽ có nhiều bộ phân tích chuyên ngành bổ 
sung cùng với tài liệu hướng dẫn. Ngoài ra, trong bài viết thứ tư trong loạt bài này, 
bạn sẽ học cách để viết bộ phân tích của riêng bạn để bổ sung những vận chuyển 
với các công cụ chính nó. 
Sử dụng Dump Analyzer từ dòng lệnh 
Trong một số trường hợp, việc chạy Dump Analyzer từ dòng lệnh là khá hữu ích 
(ví dụ như khi quá trình phân tích cần phải được tích hợp vào một số công việc xử 
lý vấn đề hiện tại). Cách dễ nhất để sử dụng Dump Analyzer là thông qua ISA, và 
các bạn vừa được thấy cách làm thế nào để tải về các Dump Analyzer trong ISA. 
Để chạy một mình Dump Analyzer, bạn cần bốn tập tin JAR và một tập tin script. 
Đó là: 
 dumpAnalyzer.jar (nằm trong 
installDir/plugins/com.ibm.java.diagnostics.dbda.isa_(số phiên bản)/WEB-
INF/lib) 
 dtfj-interface.jar (nằm trong 
installDir/plugins/com.ibm.java.diagnostics.dbda.isa_(số phiên bản)/WEB-
INF/lib/j9) 
 dtfj.jar for Java 5.0 and above (nằm trong 
installDir/plugins/com.ibm.java.diagnostics.dbda.isa_(số phiên bản)/WEB-
INF/lib/j9) 
 dtfj.jar for Java 1.4.2 (nằm trong 
installDir/plugins/com.ibm.java.diagnostics.dbda.isa_(số phiên bản)/WEB-
INF/lib/sov) 
 general.sml (nằm trong 
installDir/plugins/com.ibm.java.diagnostics.dbda.isa_(số phiên bản) 
Trong tất cả các đường dẫn ở trên, installDir biểu thị thư mục cài đặt ISA, theo 
mặc định là C:\Program Files\IBM\IBM Support Assistant v3 trên Microsoft 
Windows hay /opt/IBM/IBM Support Assistant v3 trên Linux™. Bạn có thể sao 
chép những tập tin này ở nơi khác, hoặc bạn có thể chạy Dump Analyzer trực tiếp 
từ thư mục InstallDir/plugins/com.ibm.java.diagnostics.dbda.isa_ (số phiên bản). 
Mặc dù ISA chỉ có sẵn trên Windows và Linux, bạn có thể chạy Dump Analyzer từ 
dòng lệnh trên bất kỳ nền tảng nào. 
Đây là các bước dòng lệnh để chạy Dump Analyzer từ thư mục mặc định trên 
Windows: 
1. set CP=WEB-INF/lib/dumpAnalyzer.jar 
2. set BCP=WEB-INF/lib/j9/dtfj.jar;WEB-INF/lib/j9/dtfj-interface.jar;WEB-
INF/lib/sov/dtfj.jar 
3. java -cp %CP% -Xbootclasspath/p:%BCP% 
com.ibm.dtfj.analyzer.base.DumpAnalyzer (dumpName) (options) 
Và đây là các bước cho Linux: 
1. export CP=WEB-INF/lib/dumpAnalyzer.jar 
2. export BCP=WEB-INF/lib/j9/dtfj.jar:WEB-INF/lib/j9/dtfj-
interface.jar:WEB-INF/lib/sov/dtfj.jar 
3. java -cp $CP -Xbootclasspath/p:$BCP 
com.ibm.dtfj.analyzer.base.DumpAnalyzer (dumpName) (options) 
Tại đây, dumpName là tên kết xuất hoàn toàn đủ điều kiện để được phân tích. 
options là các thông số Runtime có thể được sử dụng để cấu hình Dump Analyzer. 
Chạy với tùy chọn -help sẽ in ra một danh sách của tất cả các thông số có sẵn. 
Hình 3 cho thấy một bản chụp của một số kết quả đầu ra từ Dump Analyzer khi 
chạy trên dòng lệnh: 
Hình 3. Ví dụ về đầu ra dòng lệnh của Dump Analyzer 
Kế hoạch tương lai 
Tại thời điểm viết bài, một phiên bản đầu tiên của Dump Analyzer đã được ra mắt. 
Nhóm chúng tôi dự định sẽ tiếp tục thực hiện cải tiến và cập nhật một cách thường 
xuyên. Đặc biệt, chúng tôi sẽ tập trung vào hai lĩnh vực: 
DTFJ: Kiến trúc bên trong Dump Analyzer 
Dump Analyzer sử dụng DTFJ để thẩm tra các định dạng lỗi của hệ thống. DTFJ là 
một API hỗ trợ xây dựng các công cụ chẩn đoán của Java, có thể kiểm tra các sự 
cố hệ thống từ một máy ảo. Trước khi các sự cố hệ thống có thể được kiểm ra, đầu 
tiên phải được xử lý bởi jextract để thêm thông tin cụ thể của Java runtime. Điều 
này là cần thiết để jextract chạy với các tệp kết xuất hệ thống (jextract core.dmp, 
trên dòng lệnh) sử dụng cùng phiên bản với nền tảng Java và chạy trên cùng máy 
mà phát sinh ra lỗi hệ thống. Một khi điều này được thực hiện, các tập tin kết quả 
(.sdff cho V1.4 của nền tảng Java, hay .dmp.zip cho V5.0 và cao hơn) có thể được 
kiểm tra trên bất kỳ hệ thống nào. 
Giai đoạn đầu tiên trong phân tích sử dụng DYHJ là xây dựng một tệp ảnh DTFJ 
sử dụng một tệp ảnh đã được nhà sản xuất tích hợp. Nhà sản xuất này cung cấp 
một mức độ máy ảo cụ thể và có sự hiểu biết về nền tảng cụ thể của định dạng lỗi 
hệ thống. Tệp ảnh này thể hiện toàn bộ hình ảnh hệ điều hành; nó cung cấp các 
phương pháp để truy cập thông tin về kiến trúc của máy phát sinh các sự cố hệ 
thống, nhưng tính năng chính của nó là khả năng cho phép kiểm tra các địa chỉ 
không gian nó chứa bên trong tệp ảnh. Sử dụng DTFJ API, nó có thể chuyển từ tệp 
ảnh đến từng chi tiết các thông số của thời gian chạy, các luồng Java, môi trường, 
và đối tượng trong vùng heap. Giao diện cho phép sử dụng công cụ để phân tích 
vấn đề và cung cấp thông tin báo cáo. 
 Chúng tôi sẽ tiếp tục cải tiến giao diện người dùng của công cụ, thêm các 
trình điều khiển để kiểm tra các sự cố và phân tích khi chạy, nâng cao định 
dạng đầu ra, có thể bổ sung thêm chế độ tương tác, và nhiều hơn nữa. 
 Chúng tôi sẽ tăng số lượng các phân tích và các kịch bản để bao quát đa 
dạng hơn nữa các vấn đề. 
Lĩnh vực xây dựng phân tích mới là điều đặc biệt thú vị. Với công nghệ phân tích 
bắt lỗi DTFJ, bây giờ bạn có một cơ chế khá dễ tiếp cận để kiểm tra các đơn vị VM 
ở mức độ thấp như các luồng và màn hình để chẩn đoán để chẩn đoán lỗi thiếu bộ 
nhớ, treo máy, các tắc nghẽn, và tương tự như thế; ngoài ra, bạn cũng có thể kiểm 
tra các nội dung của bất kỳ cấu trúc dữ liệu nào hiện có trong các máy ảo. Đặc biệt, 
bạn có thể kiểm tra các nội dung của cấu trúc dữ liệu khác nhau mà là một phần 
của việc thực hiện của ứng dụng hoặc trung gian chạy bên trong máy ảo. Chúng tôi 
dự định bắt đầu xây dựng một bộ phân tích sử dụng thông tin này để giúp chẩn 
đoán một loạt các vấn đề trong WebSphere Application Server và các sản phẩm 
ngăn xếp có khả năng khác. 
Mục đích của chúng tôi là làm cho công cụ hữu ích nhất có thể, vì vậy chúng tôi rất 
hoan nghênh mọi thông tin phản hồi — cả về chính công cụ và về các bộ phân tích 
mới mà bạn muốn thêm vào —. Thông tin phản hồi có thể được cung cấp thông 
qua bài viết này hoặc thông qua ISA. 

File đính kèm:

  • pdfChuẩn đoán Java theo cách của IBM - Phần 1_Giới thiệu công cụ chẩn đoán và theo dõi Java của IBM-Dump Analyzer.pdf
Tài liệu liên quan