Dav*_*ury 20 asp.net iis multithreading http.sys
我目前正在阅读很多关于node.js.的内容.使用传统线程每个请求模型(Apache)的服务器与使用事件循环(Nginx,节点,Tornado)的服务器之间经常进行比较.
我想详细了解如何在ASP.NET中处理请求 - 从http.sys中一直收到它直到在ASP.NET本身处理它.我发现http.sys和IIS上的MSDN文档有点缺乏,但也许我的google-fu今天很弱.到目前为止,我找到的最好的资源是Thomas Marquardt博客上的帖子.
任何人都可以对这个话题有更多的了解,或者指出任何其他资源?
(出于这个问题的目的,我只对具有典型集成管道的IIS7感兴趣)
从我到目前为止的研究中,我的理解是,当一个请求进入时,它被放入内核模式请求队列中.根据这个,这样就避免了许多与当有要求的大量上下文切换的问题(或进程或线程...),提供对事件触发IO类似的好处.引自文章:
"每个请求队列对应一个应用程序池.应用程序池对应于HTTP.sys中的一个请求队列和一个或多个工作进程."
因此,根据这一点,每个请求队列可能有多个" 工作进程".(Google缓存)有关工作进程的更多信息
根据我的理解:
这里有很多关于IIS7架构的重要信息
以下是有关http.sys的更多信息.
我还有以下问题:
注意:我不确定"内核模式请求队列"是否/如何对应IO完成端口,我会假设每个请求都有自己的但我不知道,所以我真的希望有人会回答这个问题.彻底.我只是偶然发现了这个问题,看起来http.sys实际上确实使用IO完成端口,它应该提供几乎所有与IO(node.js,nginx,lighttpd,C10K等等)相同的好处. .
| 归档时间: |
|
| 查看次数: |
3389 次 |
| 最近记录: |