2010-08-09 20 views
7

Đưa ra một hệ thống .NET 4 tương đối điển hình trong môi trường SOA (nghĩa là Windows Server 2008 R2, Dịch vụ Web RESTful trên IIS 7, Dịch vụ Windows cho nhắn tin NServiceBus, SQL Server 2008 R2, v.v.) (không có thẻ giá doanh nghiệp) để thực hiện giám sát hiệu suất 24x7 trong sản xuất?Giám sát hiệu suất liên tục của các ứng dụng .NET trong sản xuất?

Không nhất thiết phải sử dụng bao nhiêu CPU/bộ nhớ/đĩa IO mà thay vào đó, ví dụ như bao nhiêu lệnh createAccount() được thực hiện, phương thức generateResponse() trung bình mất và phát hiện đột biến delta bất thường giữa ví dụ generateResponseStarted và generateResponseComplete (phương thức được gọi (lần lượt có thể gọi bên thứ 3) và phản hồi sẵn sàng được trả về tương ứng). Sau khi một số googling nó có vẻ như các tùy chọn cho profilers cấp thấp (như dotTrace) và thực hiện Bộ đếm hiệu suất và tiêu thụ những người có PerfMon hoặc một số sản phẩm loại OpManager khác.

Bạn sẽ đề xuất điều gì? Việc triển khai các bộ đếm hiệu suất cho một ứng dụng trực tiếp có làm giảm đáng kể hiệu suất trên hệ thống sản xuất không? Nếu không, có bất kỳ thư viện tốt nào hợp lý hóa việc triển khai trong .NET không? Nếu có, làm thế nào để mọi người theo dõi hiệu suất của ứng dụng của họ ngoài bộ nhớ-đĩa-cpu?


@Ryan Hayes

Cảm ơn, tôi đang tìm một cách để xem một bất thường làm chậm lại hoặc gai trên các hệ thống sản xuất. Ví dụ tất cả đều tốt trong quá trình kiểm tra căng thẳng nhưng vì lý do nào đó mà bên thứ ba chúng tôi tin tưởng là có một số vấn đề hoặc DB bị chậm lại do khóa luồng hoặc SAN đang nhường đường hoặc bất kỳ tình huống bất ngờ nào khác. Cấu hình mức thấp là quá nhiều chi phí trong khi chỉ bật bộ đếm khi có sự cố là quá muộn tại thời điểm đó. Ngoài ra, chúng tôi sẽ thiếu dữ liệu lịch sử để so sánh nó với (tôi sẽ cần một số loại hệ thống cảnh báo khi đồng bằng nằm ngoài ngưỡng chấp nhận được). Tôi tự hỏi làm thế nào mọi người theo dõi hiệu suất của hệ thống sản xuất của họ và trong kinh nghiệm của họ những gì sẽ là cách tiếp cận tốt nhất cho không nhớ/cpu/máy chủ liên quan đến loại giám sát.

+0

Bộ đếm hiệu suất rất nhanh - và được xây dựng cho loại thứ này. Ngay cả các đường dẫn "quan trọng" như mạng trên các cửa sổ đều sử dụng chúng. – nos

Trả lời

0

Câu hỏi ở đây thực sự là những gì bạn đang cố gắng học hỏi từ việc giám sát hiệu suất?

  • Bạn có muốn làm cho mã của mình nhanh hơn không? Sau đó, tôi sẽ đề nghị sử dụng các công cụ lược tả trên môi trường thử nghiệm để tìm ra nơi bạn có thể cải thiện mã của mình.

  • Bạn có muốn tìm hiểu hệ thống tối đa mà hệ thống của bạn có thể xử lý không? Sau đó, tôi sẽ đề nghị thực hiện kiểm tra tải trên môi trường thử nghiệm. Nếu bạn biết chính xác mức độ khó có thể đẩy hệ thống của mình mà không phá hủy nó, thì bạn sẽ không cần phải giám sát vào sản xuất.

Để sản xuất, bạn có thể muốn tối đa hóa hiệu suất. Để thực hiện việc này, việc đẩy môi trường thử nghiệm trở nên khó khăn và có được các chỉ số vững chắc để bạn không cần phải đặt các màn hình hiệu suất vào vị trí sản xuất. Đối với sản xuất, bạn chỉ muốn có thể biết khi nào bạn đạt đến đỉnh đó và sau đó làm suy giảm một cách duyên dáng hoặc bất cứ điều gì bạn thấy phù hợp. Nói chung, ghi nhật ký tốt là cách tốt nhất để giám sát hiệu suất hệ thống (bên cạnh phần cứng) và giữ một bản ghi của đặc biệt quirks hiệu suất.

Mỗi hệ thống khác nhau và số dặm của bạn có thể thay đổi.Thực hiện điều này như là một gợi ý chứ không phải là cách mọi người làm điều đó, bởi vì luôn có những trường hợp đặc biệt mà bạn có thể phải có hồ sơ chạy trong sản xuất.

+0

Cảm ơn, tôi đang tìm cách để thấy sự chậm lại hoặc đột biến bất thường trên hệ thống sản xuất. Ví dụ tất cả đều tốt trong quá trình kiểm tra căng thẳng nhưng vì lý do nào đó mà bên thứ ba chúng tôi tin tưởng là có một số vấn đề hoặc DB bị chậm lại do khóa luồng hoặc SAN đang nhường đường hoặc bất kỳ tình huống bất ngờ nào khác. Cấu hình mức thấp là quá nhiều chi phí trong khi chỉ bật bộ đếm khi có sự cố là quá muộn tại thời điểm đó. Ngoài ra, chúng tôi sẽ thiếu dữ liệu lịch sử để so sánh nó với (tôi sẽ cần một số loại hệ thống cảnh báo khi đồng bằng nằm ngoài ngưỡng chấp nhận được). Tôi tự hỏi […] –

2

Bạn có thể thử AlertGrid. Có vẻ như đây có thể là giải pháp cho vấn đề của bạn.

Bạn có thể gửi các thông số khác nhau cho AlertGrid từ ứng dụng của bạn (tên tài khoản mới, thời gian thực hiện một số phần quan trọng của logic và vv). Dịch vụ AlertGrid có thể làm vài việc với dữ liệu của bạn. Trước hết nó có thể xử lý một số quy tắc thông báo được xây dựng với các thông số bạn đã gửi (như thời gian làm điều gì đó quan trọng> X giây -> gửi sms cho người phụ trách).

Trong hai tuần AlertGrid sắp có một loạt các tính năng mới. Có vẻ như điều quan trọng nhất đối với bạn sẽ là khả năng âm mưu các thông số nhận được từ hệ thống của bạn.

Xin lưu ý rằng AlertGrid không thể phát hiện các thông số từ hệ thống của bạn - bạn cần gửi chúng thay thế. Điều này có thể giống như một phần bổ sung của công việc, nhưng chúng tôi nghĩ rằng nó có thể so sánh với thời gian cần thiết để cài đặt và cấu hình một số công cụ chuyên dụng. Mặt khác, nhờ cách tiếp cận này, AlertGrid vượt qua một số hạn chế (nó có thể được tích hợp với bất kỳ thứ gì có thể gửi yêu cầu http).

Tôi tin rằng nó sẽ dễ hiểu hơn nhiều khi bạn tạo tài khoản trong AlertGrid và chuyển hướng dẫn tương tác của nó.

Như bạn có thể đã nhận thấy tôi là một nhà phát triển trong AlertGrid đội :)

Disclaimer: Tại momment viết chúng ta biết rằng giá của AlertGrid sẽ được giảm trong một tương lai gần, do đó, không nhìn vào chúng ngay bây giờ, bạn có thể liên hệ với đường dây hỗ trợ của chúng tôi để biết thêm thông tin về giá cả. Tài khoản miễn phí có sẵn và đủ để bắt đầu.

0

Chúng tôi sử dụng Nagios để theo dõi cục bộ (CPU, dung lượng đĩa vv) và AlertFox để theo dõi giao dịch web ("chế độ xem bên ngoài"). Tất nhiên, sau này chỉ có ý nghĩa nếu trang web của bạn (?) Là công khai.

Việc triển khai bộ đếm hiệu suất cho ứng dụng trực tiếp có làm giảm đáng kể hiệu suất trên hệ thống sản xuất không?

Chúng tôi có trình cắm thêm máy chủ Nagios Win tại chỗ và không gặp vấn đề gì với chúng.