2012-05-19 23 views
5

Tôi có vai trò công nhân trong đó một số luồng chạy để xử lý các kết nối từ máy khách. Trong quá trình kiểm tra tải, chúng tôi nhận thấy rằng vai trò không phản hồi và vẫn ở trạng thái đó cho đến khi chúng tôi khởi động lại. Nhìn vào nó trong trình gỡ lỗi phòng thu trực quan (bằng cách tạm dừng quá trình hoạt động), chúng ta có thể thấy một số chủ đề chờ đợi nhưng khi nó được bỏ tạm dừng, không có hoạt động diễn ra. Làm cách nào để biết nguyên nhân gây ra vai trò trong trạng thái đó?Vai trò Windows Azure không phản hồi

Trả lời

6

Vì bạn đã đề cập rằng sự cố đã bắt đầu xảy ra với Vai trò công nhân của bạn khi bạn thực hiện kiểm tra tải, có thể đảm bảo vai trò đó hoạt động tốt ban đầu. Điều này dẫn đến kết luận rằng vấn đề là ứng dụng cụ thể chứ không phải là một cái gì đó nền tảng cụ thể. Có hai cách để bạn có thể nhận được một số thông tin chẩn đoán từ Windows Azure VM của bạn:

  • Phương án 1 (ưu tiên): Để kiểm tra những gì đang xảy ra trong Azure VM của bạn, bạn thực sự cần phải thêm Windows Azure Diagnostics với vai trò của bạn để bạn có thể nhận được hiệu suất truy cập, chi tiết bộ nhớ, sức khỏe quá trình vai trò và dữ liệu khác chuyển từ Azure VM để lưu trữ Azure của bạn mà bạn có thể phân tích ngoại tuyến.

  • Tùy chọn 2: Bật quyền truy cập RDP vào máy ảo Azure và sau đó đăng nhập vào máy ảo Azure và cài đặt, Perfmon, Process Explorer và các công cụ giám sát sức khỏe khác trong máy ảo Azure của bạn và theo dõi những gì đang diễn ra.

  • Lựa chọn 3 (cuối Resort): RDP để Azure VM của bạn và cài đặt WinDBG và gỡ lỗi quá trình chủ

Trong điều kiện như vậy khi bạn có một vai trò công nhân ngừng làm việc, đây là những gì tôi thực sự khuyên cho bất kỳ ai:

  1. tìm CPU, áp lực bộ nhớ, danh sách chủ đề và tìm ra chủ đề nào bị chặn và lý do gì.
  2. Tìm sức khỏe quy trình của nhân viên chủ nhà, khi nó bắt đầu lần cuối, nó có tái chế do một lý do nào đó, nó hoạt động trong Azure VM
  3. Nếu bạn có một quy trình riêng được đặt là "ProgramEntryPoint" vai trò công nhân của bạn, hãy kiểm tra tình trạng sức khỏe của mình
  4. Kiểm tra nhật ký sự kiện ở ứng dụng ở cấp hệ thống cho bất kỳ đầu mối nào. Trong vai trò công nhân tôi không thấy sẽ có một cái gì đó trong sổ ghi sự kiện ứng dụng nhưng nó là giá trị để có một cái nhìn.
  5. Tôi sử dụng Process Monitor để giám sát một vài quy trình và thu thập nhật ký để xem khi nào quá trình chết là trạng thái cuối cùng, những gì nó đang truy cập và bị bỏ đói bởi các vấn đề khác.

Điểm mấu chốt là bạn thực sự cần phải đào nguyên nhân gốc trong Azure VM khá giống với cách bạn sẽ làm trong máy tại chỗ.

+0

Cảm ơn điều này, các mẹo thực sự hay. Lúc đầu, vấn đề này chỉ được trình bày trên vai trò công nhân trong Azure, nhưng với một số tinh chỉnh của khai thác thử nghiệm của chúng tôi, chúng tôi bắt đầu nhìn thấy nó trong phát triển. Chúng tôi có: * Truy cập từ xa/Azure chẩn đoán thiết lập * Bộ đếm Perf và nhật ký sự kiện tùy chỉnh được thiết lập cho báo cáo cụ thể ứng dụng Có một số nơi hoạt động không đồng bộ đang được thực hiện. Chúng tôi đoán có một ngoại lệ chưa được giải quyết xảy ra, nhưng nó đã được chứng minh là khó tìm. – Irwin

+0

Tôi có thể hỏi bạn đang sử dụng Azure SDK nào không? Đã có một số vấn đề với Remote Forwarder trong SDK cũ hơn có thể gây ra các vấn đề ngẫu nhiên trong Azure tuy nhiên SDK 1.6 là rất vững chắc trên đó.Điều gì sẽ xảy ra nếu bạn xóa quyền truy cập RDP và Chẩn đoán Azure bằng ứng dụng của mình, vấn đề vẫn tồn tại? – AvkashChauhan