2011-10-21 16 views
9

Tôi có một tình huống mà một ứng dụng ASP.NET gây ra việc sử dụng dịch vụ w3wp cpu tăng đột biến lên 100% trong khi đồng thời các bộ đếm hiệu suất "% time in GC" hiển thị số rất cao 20-70%. Điều này xảy ra theo thời gian.ASP.NET CPU Spike liên quan đến "% Time in GC" cao - một đường cơ sở tốt cho ASP.NET là gì?

Tất cả điều này bắt đầu xảy ra sau khi tôi nâng cấp lên .NET 4.0 từ 2.0, BTW.

Tôi đang xem các quầy hiệu suất, cố gắng tìm thêm manh mối, nhưng tôi thiếu một dòng cơ bản tốt ... "bình thường" là gì?

  • #Gen 0 Bộ sưu tập 10.000
  • #Gen 1 bộ sưu tập 4.700 (có vẻ cao)
  • #Gen 2 bộ sưu tập 1.200 (một lần nữa dường như cao)
  • Quyết toán Những người sống sót 5000 (cao này ??)

Để cung cấp cho bạn một ý tưởng về cách bận rộn ứng dụng là:

  • AS Các yêu cầu P.NET/Sec: 170
  • ASP.NET Sessions kích hoạt: 900

Trên mỗi yêu cầu trang, trong môi trường dev của tôi, Quyết toán Những người sống sót là khoảng 50. Có vẻ cao, nhưng tất cả các công cụ profiling Tôi nhìn tại, không hiển thị bất cứ điều gì ngoài bình thường ...

Tôi đang tìm một số đường cơ sở về các giá trị tiêu biểu cho các thông số này cho ứng dụng asp.net cơ bản là gì. Ví dụ: có bao nhiêu "Người sống sót cuối cùng" đơn giản là do ASP.NET?

Rất cám ơn!

CẬP NHẬT - cuộn lại để NET 2.0 "cố định" vấn đề

tôi đã phải vật lộn với vấn đề này kể từ buổi sáng, kể từ khi tôi nâng cấp lên NET 4.0 tôi cuộn lại chnages tôi - thiết lập trang web để sử dụng asp.net 2.0, cuộn lại một số tập tin nhị phân đã được biên dịch với .net 4.0 và tất cả đều đẹp - không có gai, không có thời gian GC dài, nhưng vẫn còn rất nhiều người sống sót sau khi hoàn thành ..

* * CẬP NHẬT 2 - chỉ cần chuyển sang .NET 4.0 trong IIS làm chậm tốc độ này

Tôi đang cập nhật điều này trong trường hợp điều này hữu ích cho người khác một ngày có cùng vấn đề. Tôi thấy rằng các vấn đề bắt đầu ngay sau khi chuyển đổi IIS để sử dụng ASP.NET 4.0 trên trang web, mà không thay đổi bất kỳ mã trang web .net 2.0. Tôi giả định, có lẽ không chính xác, rằng nó là tương thích ngược do đó một trang web 2.0 net và tài nguyên nó tham khảo nên làm việc tốt theo asp.net 4.0 nhưng có vẻ là một số vấn đề. Nếu tôi có thời gian để điều tra thêm, tôi sẽ cập nhật điều này với những phát hiện của tôi

+0

+1 Mọi cập nhật khác về điều này? Tôi có một vấn đề tương tự với những người sống sót cuối cùng (dao động từ 164 - 575). Tôi chỉ đơn giản là sử dụng màn hình Hiệu suất của Win 7. Tôi có rất nhiều bộ sưu tập đối tượng. Tôi nên quan tâm đến thông số nào khác? .NET 3.5 và ứng dụng giành chiến thắng. – Chookoos

Trả lời

0

Tôi khuyên bạn nên xem ANTS Performance ProfilerANTS Memory Profiler để xem điều gì có thể gây ra đột biến.

+0

Yea I ANTS bộ nhớ hồ sơ là một trong những công cụ tôi sử dụng NHƯNG, tôi chỉ sử dụng nó trên dev của tôi và dàn dựng môi trường. sợ sử dụng chúng trong sản xuất - có an toàn cho việc sử dụng sản xuất không? –

+0

Nó không phải là lý tưởng, nhưng bạn đã có để có được để dưới cùng của nó bằng cách nào đó, phải không? Nó không thể tồi tệ hơn những gì đang xảy ra đúng không? Với CPU tăng cao, bất kỳ ai sử dụng ứng dụng sẽ gặp phải độ trễ đáng kể. –

0

Tôi đã thấy rằng khi đạt đến dung lượng máy chủ hoặc tái chế hồ bơi ứng dụng đại chúng đang diễn ra.Dưới đây là bài viết hay bạn có thể làm theo để xác định tắc nghẽn:

Chapter 17 — Tuning .NET Application Performance

0

Kiểm tra không gian đĩa của bạn và cách bạn ảo bộ nhớ và pagefile.sys được cấu hình để mở rộng. % thời gian trong GC có thể tăng đột biến nếu bạn có dung lượng đĩa rất thấp trên đĩa nơi bạn đã đặt pagefile.sys. Điều này có thể là do gần đây nhất sử dụng Gen2 và LOH không thể được phân trang vì không có không gian để mở rộng và họ chiếm Ram rời Gen1 và 2 để nhồi nhét không gian. Điều này đá trong GC thường xuyên và do đó CPU gai.

Các vấn đề liên quan