2009-04-10 41 views
6

Trên máy chủ chạy nhiều trang ASP.NET, tốt hơn là nên sử dụng một nhóm ứng dụng trên mỗi trang web hoặc cho các trang web để chia sẻ một nhóm ứng dụng đơn lẻ? Những ưu điểm hay nhược điểm vốn có của mỗi thiết lập là gì? Hay có quy tắc cứng và nhanh ở đây?Chia sẻ hồ bơi ứng dụng .NET

Trả lời

5

Điều này thực sự phụ thuộc vào yêu cầu của trang web, cũng như mối quan tâm của bạn về rủi ro.

Khi hai ứng dụng chạy trong cùng một nhóm ứng dụng, chúng có cùng mức bảo mật, do đó, có một mối quan ngại về bảo mật ở đây đối với một số lý do. Ngoài ra, nếu một trang web bắt đầu có vấn đề và sử dụng bộ nhớ, nó có thể gây ra việc tái chế hoặc đóng băng có thể ảnh hưởng đến cả hai.

Mặc dù không có quy tắc "cứng và nhanh" với điều này, một số trong những điều tôi xem xét và gây ra các quyết định "tự động" cho tôi như sau.

  • Nhiệm vụ ứng dụng có quan trọng không? (Nếu có, hồ bơi ứng dụng riêng biệt)
  • Đây có phải là ứng dụng của bên thứ ba không? (Nếu vậy, và không chắc chắn về tất cả những gì nó làm, hồ bơi ứng dụng riêng biệt)
  • Ứng dụng này có thấy các đột biến lớn trong hoạt động không? (Nếu có, tốt nhất là cách ly)

Có rất nhiều thứ ở đó, nhưng các phím cách ly và khả năng gỡ rối các ứng dụng đơn lẻ. Dưới đây là một số Microsoft article cũng chạm vào nó một chút.

+0

Vì vậy, nếu vòng đời trang ví dụ của một khách hàng đang lấy rất nhiều tài nguyên và thời gian để hoàn thành, tốt hơn là nên tách riêng thành các nhóm ứng dụng riêng biệt để các chủ đề không được đưa lên? – Markive

1

Nó sẽ phụ thuộc rất nhiều vào nếu các trang web nhất định cần độ tin cậy hơn những người khác, những gì tải dự kiến ​​của bạn cho mỗi trang web là vv

Chia sẻ một hồ bơi sẽ hiệu quả hơn nói chung, nhưng một ứng dụng bị lỗi duy nhất có thể hơn nhanh chóng gây ra sự cố cho các trang web khác. Ngoài ra, bạn có thể tái chế hoặc cập nhật riêng các hồ bơi ứng dụng riêng biệt có thể giúp lịch bảo trì dễ dàng hơn.

1

Không có quy tắc cứng và nhanh nào. Tôi có xu hướng sử dụng một hồ bơi ứng dụng cho mỗi trang web (và IIS7 thậm chí mặc định tạo một trang cho mỗi trang) bởi vì tôi thích chơi nó an toàn trong trường hợp tôi bị rò rỉ bộ nhớ trong một trang/hồ bơi, tôi không muốn nó ảnh hưởng và gỡ xuống các trang web khác. Nhưng tôi cũng có một số máy chủ nơi 100 trang web chia sẻ một hồ bơi duy nhất mà không có vấn đề. Vì vậy, như mọi khi, nó phụ thuộc.

+0

Tại sao rủi ro 100 trang web cho mỗi một nhóm? Bạn đang đạt được điều gì? Nếu việc thực hiện bị tạm dừng cho một người thì không phải tất cả đều bị tạm dừng không? Sẽ 4 A/Ps với 25 trang web mỗi một công việc nhiều hơn một chút nhưng kiên cường hơn? – Markive

3

Một trong những ưu điểm của AppPool riêng biệt là trong trường hợp bạn cần tái chế AppPool, bạn có thể làm như vậy cho một trang web mà không ảnh hưởng đến hiệu suất (hoặc bộ nhớ đệm) của những người khác.

0

Tôi sẽ mạnh mẽ thích ứng dụng đơn lẻ - hồ bơi ứng dụng đơn - unles bạn có mối quan tâm hiệu suất. Một ngoại lệ trong chủ đề nền (khi ai đó bắt đầu chơi async) có thể mang xuống toàn bộ nhóm ứng dụng. Và trừ khi bạn đã bật chế độ tái chế tự động, điều này có thể gây ra nhiều rắc rối.

2

Một nguyên tắc quan trọng cần nhớ:

KHÔNG đặt Net 1.1 và Net ứng dụng 2.0 trong hồ bơi cùng một ứng dụng. Nó sẽ làm mọi thứ trở nên rất nhanh.

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