Ứng dụng IIS7 ASP.NET - 2 ứng dụng giống hệt nhau trong 2 nhóm ứng dụng giống hệt nhau, 1 ứng dụng phản hồi và 1 không


12

Tôi có một ứng dụng web ASP.NET (v4.0) được cài đặt trong một thư mục ảo (dưới dạng một ứng dụng) và được lưu trữ trong nhóm ứng dụng riêng của nó. Điều này được lặp lại cho từng phiên bản của ứng dụng (tức là trên mỗi khách hàng).

Nhóm ứng dụng được tích hợp chế độ (không cổ điển) và LoadUserProfile được đặt thành đúng. Nếu không, cài đặt mặc định.

Mỗi phiên bản hiện có bản sao mã / cấu hình riêng và thư mục dữ liệu riêng (đọc / ghi tệp cơ bản).

1 phiên bản của ứng dụng này chạy tốt (thao tác được sử dụng để so sánh mất ~ 4 giây). Mọi trường hợp khác chạy chậm (từ 10-25 giây cho cùng một thao tác).

Nếu tôi di chuyển cá thể chậm hơn sang nhóm ứng dụng "nhanh nhất", thì cá thể đó sẽ sống lại. Nếu tôi di chuyển cá thể nhanh hơn vào nhóm ứng dụng chậm hơn thì cá thể đó sẽ chậm lại để thu thập dữ liệu.

Các nhóm ứng dụng đã được tạo theo cùng một cách ban đầu - thủ công. Sau đó tôi đã sử dụng thói quen sao chép powershell để đảm bảo một bản sao chính xác của nhóm ứng dụng nhanh hơn và vẫn giữ nguyên hành vi. So sánh các tệp apppool.config cho thấy chúng giống hệt nhau khi chặn các bài tập thư mục ảo.

Không có tài nguyên được chia sẻ nào đang bị chặn, theo như tôi có thể nói, và tôi đã kiểm tra rằng bằng cách tắt nhóm ứng dụng biểu diễn và khởi động lại ... chậm vẫn chậm, và sau đó khi tôi khởi động lại nhóm ứng dụng đó (vì vậy nó đã được tải cuối cùng) nó vẫn nhanh hơn ...


Và các thư mục ứng dụng giống hệt nhau byte?
usr

Có, chỉ cần kiểm tra ba lần nhưng sự khác biệt duy nhất là trong web.config nơi nó chỉ định tên của thư mục ảo mà nó đang được lưu trữ bên dưới (và tôi đã kiểm tra hai lần đó là sự khác biệt duy nhất) Mọi tệp khác đều giống hệt nhau .. .

Ứng dụng đang làm gì mất nhiều thời gian hơn trong một apppool? Bạn có thể đính kèm VS và tạm dừng trình gỡ lỗi để cấu hình nó không?
usr

Tôi không cài đặt VS trên máy chủ vì đây là hệ thống sản xuất, nhưng có vẻ như đó là điểm dừng chân tiếp theo của tôi. Tôi là một phần thông qua việc thêm ghi nhật ký dài dòng vào các thành phần truy cập dữ liệu và truy cập tệp vì theo dõi chúng tôi chưa cho thấy cụ thể nào. Tôi sẽ có thêm một số thống kê và thêm nó càng sớm càng tốt - Tôi đã lạc quan rằng ai đó có thể đã gặp phải tương tự để tôi có thể tránh con đường đó

1
Vì bạn đang tải hồ sơ người dùng, đó dường như là điểm khác biệt chính giữa các nhóm ứng dụng đó. Kiểm tra các vị trí tạm thời của người dùng, quyền ghi tệp ở đó và nếu kết nối với cơ sở dữ liệu bằng cùng một người dùng, sau đó cũng kiểm tra quyền trên DB. Tất cả chỉ cần cho một truy vấn hết thời gian cho người dùng đó, vì vậy hãy kiểm tra với cùng một DB nếu có thể. Chúc may mắn!

Câu trả lời:


1

Để tiếp tục giải quyết vấn đề, tôi khuyên bạn nên chạy Wireshark (hoặc bộ phân tích gói lựa chọn khác) trên hệ thống máy chủ, trong hai phiên. Giả định tôi đang thực hiện là mỗi nhóm ứng dụng có một IP duy nhất được gán cho nó hoặc một cổng duy nhất.

Trước tiên hãy lấy hiệu suất cơ bản của bạn bằng cách lọc trên cổng IP: của nhóm ứng dụng nhanh của bạn. Xem lưu lượng truy cập đến và từ ứng dụng trông như thế nào trong điều kiện "bình thường".

Lần chạy thứ hai, bạn sẽ cần nắm bắt lưu lượng truy cập từ nhóm ứng dụng chậm / không phản hồi. Nếu tất cả các định tuyến mạng và như vậy đều đúng với hộp, bạn sẽ thấy các yêu cầu được lặp lại theo một hướng, rất có thể là ứng dụng từ nơi khác, NHƯNG nếu ứng dụng của bạn là thứ tạo ra nhiều yêu cầu cho máy chủ khác, lưu lượng truy cập của bạn có thể nặng về đi ra thay vì xâm nhập.

Thử nghiệm này sẽ cho bạn biết nếu sự cố nằm trong ứng dụng hoặc nếu sự cố liên quan đến TCP / IP dẫn đến yêu cầu hết thời gian của ứng dụng do giao tiếp thấp / không có.

Tương quan dấu thời gian của các bài kiểm tra của bạn với nhật ký sự kiện của máy chủ và nhật ký theo dõi (nếu có thể) và bạn sẽ có thể giải quyết vấn đề.


0

Truy tìm yêu cầu thất bại (FRT) sẽ là công cụ tốt nhất của bạn để theo dõi điều này. Nó sẽ hiển thị đường ống dẫn và mỗi bước mất bao lâu để hoàn thành. Điều đó sẽ chỉ ra liệu đó là một cái gì đó trong phần asp.net hoặc nếu đó là một cái gì đó trong chính đường ống IIS.

Để thiết lập FRT, từ IIS ở cấp trang web, hãy tạo quy tắc FRT với phạm vi trạng thái http là 200-999 và đảm bảo bật FRT (đó là một bước riêng biệt từ ngăn hành động).

Sau đó, tái tạo vấn đề và xem xét các tệp được tạo (% SystemDrive% \ inetpub \ log \ FailsReqLogFiles \ w3svc {siteid}). Mở chúng trong Internet Explorer.


0

Khi IIS trì hoãn trong thời gian dài mà không có lý do rõ ràng, điều đó thường có nghĩa là nó đang chờ một dịch vụ bên ngoài hết thời gian. Khi nó làm sau đó nó cố gắng một cách tiếp cận khác. Đối với vấn đề đó, điều này đúng với mọi thứ trong Windows hoặc Linux. Nghi ngờ đầu tiên đối với tôi trong những tình huống này là cấu hình độ phân giải tên mạng. Đó là tội lỗi cho đến khi được chứng minh vô tội.

Điều này có thể được tạo lại với một người dùng nhấn một trong các trang web trùng lặp không? Sẽ thật tốt khi biết CPU và đĩa đang làm gì khi bạn tạo lại thời gian phản hồi 10 đến 20 giây. Nếu có vẻ như không có gì nhiều xảy ra trong 10-20 giây thì bạn nên kiểm tra tên ràng buộc và độ phân giải tên của mình cho các tên bị ràng buộc. Nếu CPU hoặc đĩa đang nhai đi thì bạn sẽ cần phải tìm ra quá trình nào đang làm việc quá sức và tại sao.

Xin vui lòng gửi kết quả của bạn, tôi tò mò.

PS Tôi cũng sẽ kiểm tra độ phân giải tên và quyền truy cập vào bất kỳ dịch vụ xác thực nào có thể đang hoạt động. Ví dụ: nếu sever domain cần được tư vấn, hãy đảm bảo rằng máy chủ DNS đầu tiên trong danh sách của bạn là máy chủ DNS cho tên miền.


0

Đây không phải là giải pháp nhưng chúng tôi sẽ hướng tới nó;

  1. Chạy IISRESET (trong giờ bảo trì) hoặc tắt W3WP thuộc nhóm ứng dụng không phản hồi

  2. Chạy ứng dụng

  3. Mặc dù không phản hồi, hãy lấy tệp kết xuất của W3WP thuộc nhóm ứng dụng chậm. Sử dụng trình thám hiểm quy trình hoặc trình quản lý tác vụ để tạo tệp kết xuất

  4. Lấy mscordacwks.dll và mscorwks.dll từ bên dưới C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.XXXXX

  5. Zip và tải các tập tin này ở đâu đó từ nơi tôi có thể tải xuống.

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.