Hiệu suất ASP.NET giảm giữa máy chủ 32 bit / 64 bit


9

Chúng tôi hiện đang trong quá trình nâng cấp máy chủ sản xuất 32 bit của mình lên máy chủ 64 bit mạnh hơn trong khi nâng cấp lên ASP.NET 4. Tuy nhiên, khi thực hiện một số thử nghiệm tải nhẹ, chúng tôi dường như bị giảm hiệu suất!

Tôi đã tạo một thử nghiệm tải đơn giản với tải không đổi 20 người thực hiện một vài trường hợp sử dụng đơn giản và so sánh kết quả:

Phản hồi của trang

Như bạn có thể thấy, cấu hình hiệu suất cao nhất là máy chủ 32 bit hiện có với ASP.NET 2.0.

Bạn có thể thấy rằng bằng cách chạy IIS ở chế độ 32 bit trên máy 64 bit, nó tương đối giống với máy chủ 32 bit hiện có, nhưng khi chạy IIS ở chế độ 64 bit trên máy chủ 64 bit - hiệu suất kém hơn đáng kể. Tôi không chắc tại sao, do máy chủ mới tốt hơn.

Vì một số lý do, mỗi lần tôi chạy thử nghiệm với IIS ở 64 bit, có một sự tăng đột biến lớn khi bắt đầu, sau đó nó sẽ thoát ra nhưng vẫn có thời gian phản hồi cao hơn 32 bit. Sự tăng đột biến khi tôi chạy IIS ở chế độ 32 bit.

Tăng vọt 64 bit

Lưu ý rằng nhóm ứng dụng / ứng dụng không được khởi động lại giữa các lần kiểm tra, tuy nhiên mức tăng đột biến vẫn ở đó và phản hồi cao hơn các cấu hình khác.

Vì vậy - câu hỏi của tôi là: có ai có ý tưởng tại sao lại như vậy không? Có bất kỳ cài đặt cấu hình nào tôi cần đặt không? Có ai có một số gợi ý về cách tôi có thể thu hẹp những gì gây ra sự khác biệt?

Máy chủ sản xuất hiện tại: Win Server 2003 - 32bit - IIS6

Máy chủ mới: Win Server 2003 R2 - 64 bit - IIS6

Câu trả lời:


4

Theo tài liệu, MS khuyên bạn nên chạy nhóm ứng dụng 32 bit trên máy chủ 64 bit vì ứng dụng web không nên sử dụng thêm bộ nhớ (bên trong).

Các ứng dụng 32 bit luôn có hiệu suất cao hơn - các con trỏ nhỏ hơn có nghĩa là cần ít bộ nhớ hơn cho một bộ hướng dẫn cụ thể có nghĩa là tỷ lệ trúng bộ nhớ cache tốt hơn.

Các quy trình 64 bit chỉ có ý nghĩa hạn chế - khi một quy trình thực sự cần nhiều bộ nhớ hơn. nếu bạn giữ giao diện web của bạn làm việc đó (giao diện người dùng) thì không có lý do gì nó cần nhiều bộ nhớ như vậy;)

Trên hết, nó thực sự có ý nghĩa để thực sự nâng cấp lên các phiên bản hiệu suất cao hơn. IIS6 đã hút một số lượng lớn một cách hiệu quả - IIS 7.5 tốt hơn rất nhiều, ĐẶC BIỆT nếu bạn chạy ASP.NET / mã được quản lý.


Thú vị, cảm ơn. Tôi không cho rằng bạn có một liên kết đến tài liệu MS với đề xuất chỉ để tôi có thể đọc thêm? Thật không may, tôi không thể sử dụng II7 + vì tôi bị ràng buộc bởi Win2k3 :(
DavidMasters84

IIS.net - hướng dẫn lưu trữ;) Dành cho iis 7,)
TomTom

"Vì ứng dụng web không nên sử dụng nhiều bộ nhớ hơn nữa" nghe giống như những gì Bill Gates đã nói trong thập niên 80 :) Bạn có liên kết cho các hướng dẫn không?
Fredrik Johansson

2

Chúng tôi đã thử điều này trên máy chủ Windows 2K3 của chúng tôi và nhận được điều tương tự, lúc đó tôi không ở đây nhưng điều đó có liên quan đến cách MS triển khai 64Bit .Net trong 2K3 (không chắc là gì nhưng người nói với tôi là MVP vậy Tôi sẽ tin lời anh ấy.)

Và chỉ để cho bạn biết rằng nếu bạn chuyển sang Win2K8, bạn có thể thấy điều tương tự như tôi đã làm với các máy chủ của chúng tôi ở đây và gặp vấn đề về hiệu suất tương tự. Từ những gì tôi đã nói và một chút đọc để tận dụng 64Bit .Net, nên sử dụng các đường ống tích hợp ( http://msdn.microsoft.com/en-us/magazine/cc135973.aspx )

Xin lỗi điều này không trả lời câu hỏi của bạn nhưng tôi nghĩ tôi sẽ cho bạn biết rằng bạn không phải là người duy nhất nhìn thấy vấn đề này.

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.