0

我们正在使用具有双 CPU 的 Windows 2003 服务器,IIS 被请求溢出并且无法处理它们,但同时它使用的 CPU 不到 20%,内存不到 40%。当服务器无法满足任何请求时,不仅无法浏览该网站,甚至无法提供在我们其他网站上使用的图像。我们正在考虑安装 VMWare 以在这台机器上拥有 2 台服务器,并使用一台服务器来提供 asp.net 页面,另一台来提供图像和简单的 html 页面。你们知道我们如何将图像和 html 页面请求路由到一台服务器并将 aspx 页面请求路由到另一台服务器吗?

任何想法表示赞赏。

谢谢你,丹尼斯

4

3 回答 3

5
  1. 网络状态如何?100% 100mb?
  2. 在 IIS 中,您是否限制了连接数?你在限制带宽吗?
  3. 服务器事件日志中是否存在服务器错误?
  4. 你是什​​么数据库活动?是数据库瓶颈在您的网络服务器?
  5. DB Network util 是否也很高?数据库和网络服务器在同一个网络上通话吗?一些网络服务器有 2 个网卡,数据库和网络服务器不应与外部流量共享相同的带宽,将外部流量放在一个网络上,将内部通信放在“后端”网络上
  6. 您是否启用了任何缓存?输出,数据?

您应该确保使用了适当的数据缓存。

http://msdn.microsoft.com/en-us/library/ms972379.aspx

您应该尝试使用 CDN(内容交付网络)或部署您自己的 CR(内容存储库)服务器,其 url 与您的网站不同:

  • www.yoursite.com/index.aspx

您的图像/css/js 都可以从 CR 服务器提供服务

  • www.yourcdn.com/images/bigImage.jpg

或者

  • cdn.yoursite.com/images/bigImage.jpg

或者

  • cr.yoursite.com/images/bigImage.jpg

由于您的网络服务器 CPU 利用率如此之低,请尝试根据 David 的好评添加 HTTP 压缩以降低一些网络利用率

于 2009-08-05T15:11:26.453 回答
4

如果您的网络为 100%,而您的 CPU 为 40%,那么增加更多的处理能力和/或虚拟化机器将无济于事。您可以添加更多带宽(如何取决于托管情况)或使用 BigBlondeViking 建议的 CDN 或减少应用程序的带宽使用量(具体取决于应用程序)。在大多数情况下,最简单的选择实际上是 CDN。

现在,一旦你解决了这个带宽瓶颈,你可能会开始遇到 CPU 使用问题,因为你可以处理的请求数量会急剧增加。

于 2009-08-05T16:10:11.727 回答
1

BigBlondeViking 有几个优点。

但我想补充一点,将 2 个虚拟机放在机器上可能对您没有多大帮助。我们所做的(我会向任何人推荐)是有两层服务器:

  • 在 DMZ 中运行 Apache 的 Web 服务器
    • 这些为您的图像、css、js 和其他静态内容提供服务
    • 做ssl
    • 也用作反向代理服务器(使用 mod_proxy)
  • 运行 IIS 的应用程序服务器
    • 这些服务于您的 ASP.NET 页面

这有助于为您的站点增加一定程度的可扩展性和安全性。

示例 Apache mod_proxy 配置:

<VirtualHost 555.55.555.555:80>
ServerName domain.com
DocumentRoot c:/docroot

ProxyPass /img !
ProxyPass /js !
ProxyPass /css !
ProxyPass / http://serverA/vdir
ProxyPassReverse / http://serverA/vdir
</VirtualHost>

这会将所有到 / 的请求和除 img、js 和 css 之外的任何子目录代理到 serverA/vdir

于 2009-08-05T15:24:00.630 回答