ASP.net sử dụng .Net threadpool (có thể cấu hình) Mỗi yêu cầu được nhận bởi một trong các chủ đề trong threadpool, cho đến khi mỗi luồng đã được chiếm. Sau đó yêu cầu hàng đợi tại ngăn xếp IIS, cho đến khi điều này cũng tràn qua. Từ đó các yêu cầu mới được đáp ứng với thông báo 'Máy chủ không khả dụng' rất xấu.
Đây là câu chuyện 'đa luồng' thông thường cho trang web ASP.net.
Có nhiều cách để đảm bảo khả năng mở rộng. Kiểm tra hiệu suất rõ ràng nhất và loại bỏ tắc nghẽn từ mã của bạn.
ASP.net thực sự có thể tận dụng nhiều lõi bằng cách sử dụng các luồng I/O cho bất kỳ yêu cầu I/O nào. Nó làm cho mã xấu xí nhưng nhanh chưa bao giờ được đẹp.
Đây là MSDN MAG dứt khoát bài về cách để làm điều này
CẬP NHẬT
Vâng tôi có lẽ cố gắng trả lời câu hỏi đầy đủ của bạn:
"Quan trọng hơn là có bất kỳ lợi thế để thêm chủ đề vào mã ASP.Net nếu luồng được thực hiện cao hơn ở mứctrong IIS? "
Câu trả lời ngắn gọn là: Phụ thuộc! Nếu bạn đang chờ đợi một quy trình chạy dài, bạn nên thực hiện một trải nghiệm đẹp hơn cho khách hàng yêu cầu (ví dụ: Gọi điện ngoài AJAX)
nếu bạn có nhiều nhiệm vụ độc lập cần hoàn thành khách hàng yêu cầu: sau đó bạn có thể tốt hơn để tạo ra một quy trình mới để chạy các tác vụ song song.
Nếu trang web của bạn nhận được rất nhiều giao thông, sau đó bạn thực sự cần phải xem xét thực hiện mô hình đồng bộ để sử dụng tốt hơn CPU của bạn
Nguồn
2009-03-18 10:55:20
Bất kỳ trang web bằng cách thiết kế là đa luồng, mỗi yêu cầu được phục vụ lên phần lớn song song với tất cả các yêu cầu khác –