我目前正在调查一个架构的可行性,我们将在IIS(10+)中运行的每个微服务都有数千个AppPools,因此可能有工作进程。 (这是几个选项之一)
我了解每个工作进程的开销。目前我的估计是每个工人将大约20-30MB。服务器资源不应该是一个太大的问题,因为我们可能会配置32-64GB RAM的服务器。除此之外,并非所有工作人员都会一直活跃,因此我们应该在AppPools闲置时获得空间。
我的问题:IIS可以处理这么多AppPools / Worker进程吗?
我没有看到不应该提供足够资源的原因,但经过一些简短的搜索后却无法找到任何相关文档。
答案 0 :(得分:0)
所以我会在这里为我自己的问题添加一些答案,因为我做了一些测试。
服务器强>
<强>应用强>
使用单个控制器和操作创建了一个仅限运行的准系统WebAPI ASP.Net应用程序。 在IIS中安装时,这是观察到的内存占用量。
<强>制备强>
我创建了一些powershell脚本(抱歉无法在利用我们的闭源部署脚本时共享它):
<强>测试强>
以下是我从PerfMon观察到的结果
正如您将注意到的那样,我无法立即运行所有1000个。我遇到了一些事情:
<强>结论强>
似乎IIS对进程数量没有限制。核心约束是机器上的资源。
有趣的是,所有应用程序都不可能以模拟方式运行,因此可以利用IIS将提供mem的事实