高性能ASP.NET站点(> 1000请求/秒)

前端之家收集整理的这篇文章主要介绍了高性能ASP.NET站点(> 1000请求/秒)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在写一个高性能ASP.NET Json API,很快> 1000请求/秒.我的所有逻辑和处理都在IHttpHandler中完成.我通过Stopwatch Class测量,处理程序以0.1 – 0.5毫秒为单位完成一个请求.

但是似乎IIS和/或其他HTTPHandler(模块?)正在消除很多性能.我能衡量一下吗?配置为最佳性能时,请求在IIS中产生多少开销?

删除所有这些HTTPHandler的帮助,还是有其他的技巧来加速?除了Session之外,我不需要大量的ASP.NET Featureset(甚至可以解决这个问题,如果它提供了显着的性能提升).

解决方法

测量Web服务器的性能不是微不足道的任务.需要考虑的几件事情

找出实际的瓶颈.这可以是内存,磁盘访问,缓存,数据库访问,网络延迟等.使用内存分析器或其他performance profiler来查找.
>使用WireShark找到您的机器上的请求多长时间和代码运行时间之间的差异.
>尝试其他配置.给ASP.NET更多的内存.升级测试系统即,从8GB / 2.5GHz,600请求/秒到16GB / 3.0GHz可以产生6500个请求/秒.绩效增长往往不是线性的.见this document from Microsoft.
>考虑添加额外的机器.这可以产生高达50甚至更高的性能升级,具体取决于您如何配置它.再次查看MS的文件.
>检查these hints by Jon Skeet.评论线索也揭示了一些不明显的潜在瓶颈.

注1:知道你的工具. ASP.NET在自己的线程中运行每个请求.线程交换比进程交换更快,但仍然需要时间.如果其他处理程序需要时间,因为它们位于请求链中,则禁用它们是有益的.

注意2:stackoverflow的最初的一个目标是在ASP.NET中创建一个在最多2台服务器上具有出色性能站点,并且可以处理>每小时1Mln个访客.他们设法做到这一点.我相信他们写了一些博客,但我不记得他们在哪里.

猜你在找的asp.Net相关文章