Giới hạn CPU cho nhóm ứng dụng trong IIS 7.5


8

Tôi thấy rằng trong iis 7.5, tôi có thể đặt giới hạn sử dụng% CPU cho một khoảng thời gian nhất định cho nhóm ứng dụng. Tôi cũng có thể có nó giết quá trình worker nếu giới hạn này bị vi phạm. Nếu bảo nó làm điều này, quy trình worker sẽ tự động khởi động lại sau khi nó bị giết, hay là cần phải can thiệp thủ công?

Ở tại Stack Overflow có đề cập rằngcó thể được khởi động lại khi hoàn thành khoảng thời gian ...

Câu trả lời:


4

Điều này trông giống như một trong những trường hợp mô phỏng (hoặc truy cập mã nguồn ...> thở dài <) có lẽ sẽ là cách duy nhất để xem hành vi đó là gì với bất kỳ mức độ tin cậy nào.

Tài liệu cho mục nhật ký sự kiện để tái chế hạn ngạch CPU nói về việc tái chế như sau:

Theo mặc định, tái chế nhóm ứng dụng bị chồng chéo, điều đó có nghĩa là quy trình công nhân sẽ bị tắt được tiếp tục chạy cho đến khi quy trình công nhân mới được bắt đầu. Sau khi một quy trình công nhân mới bắt đầu, các yêu cầu mới được chuyển đến nó. Quá trình công nhân cũ tắt sau khi hoàn thành xử lý các yêu cầu hiện có hoặc sau khi hết thời gian được cấu hình, tùy theo điều kiện nào đến trước. Cách tái chế này đảm bảo dịch vụ không bị gián đoạn cho khách hàng. Tuy nhiên, nếu một ứng dụng trong nhóm ứng dụng không thể chạy nhiều hơn một phiên bản cùng một lúc, xoay vòng chồng chéo có thể bị vô hiệu hóa.

Theo tôi, theo định nghĩa, việc chấm dứt một quy trình công nhân vì tiêu thụ CPU quá mức sẽ có nghĩa là các yêu cầu đang chờ xử lý sẽ không được phép hoàn thành (vì chúng làm cạn kiệt hạn ngạch CPU).

Nói với mối quan tâm chính của bạn: Tôi không thấy bất cứ điều gì khiến tôi tin rằng một quy trình công nhân mới sẽ không tự động xuất hiện. Câu lệnh trong liên kết Stack Overflow của bạn khiến tôi nghi ngờ liệu thuật toán được sử dụng bởi IIS trên thực tế có thể buộc tái chế với độ phân giải của bộ định thời được sử dụng để đo mức cạn kiệt hạn ngạch CPU. Cách tốt nhất mà tôi biết để xác định đó là viết một thành phần phía máy chủ lãng phí CPU, triển khai nó vào môi trường thử nghiệm và xem hành vi tái chế của nó hoạt động như thế nào. Một thành phần đơn giản nằm trong một vòng lặp chặt chẽ trong vài giây và sau đó trả về một chuỗi đã biết, kết hợp với một máy khách đang chạy khai thác thử nghiệm với một cái gì đó giống như một nhóm các quá trình "wget" song song có thể là đủ.


Ya có vẻ như tôi có thể phải kiểm tra nó. Tôi đã viết một kịch bản thử nghiệm giảm tải trong python để kiểm tra loại điều này có ích ... phải sử dụng phiên bản hack của thư viện socket và http để tôi có thể liên kết với các IP nguồn khác nhau :-)
Kyle Brandt

Một yêu cầu có thể là đủ mặc dù ... ứng dụng web tính toán pi ...
Kyle Brandt

@Kyle: Tuy nhiên, tôi sẽ không thực hiện một yêu cầu vô hạn. Tôi sẽ làm một cái gì đó, một khi bạn nhận được một vài yêu cầu "trong chuyến bay", bão hòa CPU của máy chủ nhưng cuối cùng sẽ trả về kết quả. Bằng cách đó, giàn thử của bạn có thể báo cáo về thành công / thất bại của tất cả các yêu cầu mà nó đưa ra. Mặt khác, bạn không biết liệu hành vi tái chế có thực sự dẫn đến việc ngừng dịch vụ cho khách hàng hay không.
Evan Anderson

Ồ tôi hiểu những gì bạn đang nói ... thực sự không phải là mục tiêu chính của bài kiểm tra này ... nhưng thông tin tốt phải có. Tôi chỉ muốn xem khi nó bị giết, nó có quay lại hay không. Giới hạn CPU sẽ là khoảng 90% trong 5 phút đối với mức độ có thể sử dụng 5-10%. Về cơ bản, nó đã bị phá vỡ :-)
Kyle Brandt

Thử nghiệm của riêng tôi cho thấy rằng chạy một nhóm ứng dụng trong 1 phút làm mới với giới hạn CPU là 1 (rất nhỏ), khi giới hạn được đưa ra, Sự kiện Hệ thống 5025 được ghi lại và nhóm ứng dụng bị dừng , giết chết quá trình w3wp. Sau khi giới hạn thời gian kết thúc, nhóm ứng dụng được khởi động lại.
glasnt

4

Đưa ra các ý kiến ​​trong phản hồi khác, tôi đã thực hiện thử nghiệm của riêng mình, mà tôi sẽ nhân rộng ở đây.

Trong thử nghiệm của tôi, giới hạn nhóm ứng dụng (v4.0 Tích hợp) ở giới hạn CPU nhỏ (0,01%) và một khoảng nhỏ (1 phút) với hành động KillW3WP được bật, vượt quá giới hạn này sẽ giết w3wp bằng cách dừng nhóm ứng dụng .

Sau khi đạt đến giới hạn khoảng, nhóm ứng dụng sẽ tự động được khởi động lại .

Thay đổi hành động thành Không hành động không làm thay đổi quy trình w3wp.

Trong cả hai trường hợp, Sự kiện Hệ thống 5025 được ghi lại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.