Danh mục

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

Số trang: 22      Loại file: pdf      Dung lượng: 424.27 KB      Lượt xem: 4      Lượt tải: 0    
10.10.2023

Hỗ trợ phí lưu trữ khi tải xuống: 18,000 VND Tải xuống file đầy đủ (22 trang) 0
Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

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ội dung trích xuất từ tài liệu:
Chẩ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 Chẩ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 AnalyzerVượ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ácvấ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 serviceorganization). 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 gianvà 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ữngviệ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 (IBMDiagnostic 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íchkiến trúc được sử dụng để xây dựng nên Dump Analyzer và cung cấp một số suynghĩ về hướng đi tương lai của công cụNgôn ngữ Java đã trở nên nổi bật trong lĩnh vực phát triển phần mềm, và do đó độtin cậy của các máy ảo Java (VM) đã trở thành một vấn đề rất quan trọng. Máy ảothường là một phần mềm đáng tin cậy, nhưng tất nhiên, vẫn có lỗi xảy ra trong quátrình thực thi do một loạt các nguyên nhân khác nhau. Một số ít những vấn đề nàylà do lỗi tự phát sinh trong máy ảo, tuy nhiên, trong đa số trường hợp, chúng đượcgây ra bởi lỗi hoặc cấu hình sai trong các ngăn phần mềm trên máy ảo (trongIBM® WebSphere® Application Server chẳng hạn) hoặc là do chính bản thân ứngdụng gây ra.Cùng với sự trưởng thành của công nghệ thông tin, ngăn xếp phần mềm cho mộtdự án điển hình đã tăng lên về độ phức tạp, điều này đã dẫn đến những khó khănngày càng tăng cho các nhà phát triển đang cố gắng xác định nguyên nhân của cácvấn đề. Trong một môi trường phức tạp như vậy, để chẩn đoán lỗi, bạn có thể phảiđối mặt với khối lượng thông tin nhiều đến chóng mặt. Trong môi trường sản xuấtthực tế, đó có thể là nhiều gigabyte bộ hớ, hàng trăm luồng, hàng ngàn classloader,hàng chục ngàn lớp, và một số lượng khổng lồ các đối tượng.Công cụ chẩn đoán và giám sát Java của IBM - Dump Analyzer (từ đây được gọitắt là Dump Analyzer) là một framework mở rộng có khả năng tìm ra con đườngthoát khỏi mớ hỗn độn đó. Dump Analyzer có sẵn cho tất cả người dùng nội bộ củaIBM và khách hàng bên ngoài muốn sử dụng nó để điều tra các vấn đề thông quaIBM Developer Kit cho nền tảng Java (IBM SDK). Nó sử dụng các bộ phân tích(analyzers) để thẩm vấn một tệp kết xuất hệ thống đã định dạng (formatted systemdump) (mỗi bộ phân tích sẽ thăm dò tệp báo lỗi bằng một câu hỏi riêng biệt) vàliên kết các kết quả với nhau bằng một đoạn mã kịch bản để tạo ra một bản báo cáophân tích ngắn gọn. Trong hai phiên bản đầu tiên, Dump Analyzer sẽ cho ra mộttrong bốn kết quả sau:Cái nhìn tổng quan về các loại vấn đề của máy ảoCó nhiều lý do khiến một máy ảo bị vấn đề trong khi thực thi, mỗi loại vấn đề yêucầu có một cách tiếp cận khác nhau để chẩn đoán. Trước khi bạn đi vào hoạt độngchi tiết của Dump Analyzer, nên kiểm tra những loại vấn đề khác nhau và các phântích cần thiết để giải quyết chúng.Vấn đề không đủ bộ nhớMột máy ảo có thể bị lỗi vì không đủ bộ nhớ — hoặc là do vùng nhớ heap hoặcvùng nhớ thực được sử dụng bởi các máy ảo để lưu ngăn xếp các luồng, lớp thôngtin, mã JITed, thành phần đồ họa, và các hiện vật (artifacts) khác để giao tiếp cơbản với hệ điều hành.Sẽ rất khó khăn để chẩn đoán một vấn đề như vậy bởi vì cấp phát bộ nhớ thất bạikhông phải là nguyên nhân cuối cùng; một số bộ thu gom lớn đã có thể được pháttriển cho đến khi máy ảo đạt được giới hạn cho phép của vùng heap. Thường thìchúng ta sẽ cần kiểm tra lại các nội dung của vùng heap và so sánh hình ảnh củavùng heap ở nhiều thời điểm để xác định xem các tập hợp (collections) đã tăngkích cỡ nhanh chóng.Tắc nghẽnMột tắc nghẽn xảy ra khi mà hai hay nhiều tiến trình phải chờ một tiến trình khácgiải phóng tài nguyên để sử dụng. Một luồng sở hữu một nguồn tài nguyên (nhưmàn hình) thì không thể làm chủ nguồn tài nguyên khác bởi vì luồng thứ hai sởhữu nó và đồng thời cố gắng giành quyền sở hữu tài nguyên được sở hữu bởi luồngđầu tiên. Những lỗi này thường biểu hiện qua các vấn đề về hiệu suất. Việc chẩnđoán lỗi tương đối dễ dàng, chỉ cần kiểm tra trạng thái của các luồng và tài nguyênchúng sở hữu.Các vấn đề nội bộLỗi nội bộ có thể được gây ra bởi rất nhiều vấn đề:  Mã nguồn gốc có thể cố gắng để truy cập một đối tượng có đầu vào không hợp lệ (như một tham chiếu địa phương cũ) hoặc được mã hoá không chính xác.  Bộ thu gom rác có thể thu hồi không chính xác một số vùng nhớ, khi tham chiếu, nó xuất hiện để chứa con trỏ mà chưa khai báo vùng nhớ.  Trình biên dịch JIT có thể sản xuất mã không chính xác hoặc tham chiếu hoặc nỗ lực để rẻ nhánh chương trình đến một vị trí không đúng.Lỗi trong ứng dụng Java hoặc bên trung gianDump Analyzer hiện có khả năng xử lý các lỗi xảy ra hoặc được phát hiện ở mứcđộ ngay bên trong máy ảo, nhưng thậm chí một bộ công cụ tương tự cũng có khảnăng chẩn đoán các lỗi khác nhau và hành vi không chính xác trong các ứng dụngJava hoặc các ứng dụng trung gian đang hoạt động trong các máy ảo. Có nhiềunguyên nhân sinh ra các lỗi này, chúng thường là kết quả của các khiếm khuyếttrong ứng dụng hoặc mã trung gian hoặc sử dụng hay tinh chỉnh JVM sai. Chúngthường được chẩn đoán bằng cách kiểm tra trạng thái của cấu trúc dữ liệu khácnhau trong các ứng dụng hoặc ứng dụng trung gian để xác định xem liệu có khíacạnh nào của trạng thái đó bị sai lệch không.Cách chẩn đoán vấn ...

Tài liệu được xem nhiều: