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
Đ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.
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.
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.
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
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.
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.
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.
- 1. Thực hành tốt nhất trong IIS là gì? Một hồ bơi ứng dụng cho mỗi ứng dụng hoặc một hồ bơi ứng dụng được chia sẻ?
- 2. Chủ đề hồ bơi, dữ liệu chia sẻ, Java Synchronization
- 3. Hồ bơi ứng dụng IIS PID
- 4. Hồ bơi ứng dụng IIS & Lớp học tĩnh
- 5. Tự động chia sẻ các hồ bơi trong Objective-C - phát hành chính AutoreleasePool?
- 6. Tạo bể bơi ứng dụng sử dụng .NET 4.0
- 7. hồ bơi ứng dụng đã dừng trên webrequest
- 8. ứng dụng bộ nhớ sử dụng hồ bơi theo dõi
- 9. Cách cài đặt phiên bản .net Framework 4.5 trong hồ bơi ứng dụng IIS 7
- 10. Hồ bơi ứng dụng trong IIS 7 không hiển thị .NET Framework 3.5
- 11. Ưu điểm và nhược điểm của việc có hồ bơi ứng dụng chuyên dụng để giữ các ứng dụng web trong một hồ bơi ứng dụng mặc định
- 12. Đặt hồ bơi ứng dụng cho gói bằng MSDeploy
- 13. Hồ bơi ứng dụng IIS 7.0 tái chế mỗi phút
- 14. Tạo một Hồ bơi Ứng dụng IIS 6.0 bằng Powershell
- 15. Tại sao hồ bơi ứng dụng tự động dừng lại?
- 16. Tôi làm cách nào để chia sẻ cấu hình ứng dụng trong ứng dụng .net?
- 17. Nhiều ứng dụng có mã chia sẻ
- 18. Chia sẻ URL trong ứng dụng web
- 19. Ứng dụng Chia sẻ/SMB mạng
- 20. ChannelFactory Hồ bơi kết nối tối đa
- 21. Hồ bơi ứng dụng 'DefaultAppPool' đang được tự động tắt do một loạt các lỗi trong quá trình phục vụ hồ bơi ứng dụng đó
- 22. Các hồ bơi ứng dụng riêng biệt cho các ứng dụng ASP.net trong IIS
- 23. Cài đặt chia sẻ giữa các ứng dụng
- 24. Làm thế nào để tạo một hồ bơi ứng dụng với appcmd?
- 25. Xác định lần cuối cùng một Hồ bơi Ứng dụng đã tái chế
- 26. CLR/JVM có giữ một hồ bơi đơn cho tất cả các ứng dụng .net/java đang chạy không?
- 27. Nhận dạng hồ bơi ứng dụng IIS so với tài khoản Windows
- 28. Tại sao ngay cả tái chế một hồ bơi ứng dụng?
- 29. Sử dụng hồ bơi theo chủ đề trong thực hiện dịch vụ .NET REST
- 30. Hồ bơi ứng dụng IIS bị lỗi với ngoại lệ 0xc0000005
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