对于一个 IIS 服务器来说,每秒 30 次调用很多吗?

对于一个 IIS 服务器来说,每秒 30 次调用很多吗?

我们有一个 RIA 应用程序,300 个客户端在内部网环境中同时使用。它们每秒总共对 IIS (asp.net) 进行 30 次调用(实际上是 60 次,但调用在两个 IIS 服务器上进行负载平衡)。一半的调用用于获取资产(使用缓存配置文件,因此大多数时候缓存都会被命中),另一半用于将数据保存到 SQL 服务器。

检索资产是通过 aspx 页面完成的。保存数据是通过 WebORB、asp.net 和 Sql Server 进行的。因此 WebORB 需要进行一些处理(amf 解码、GZIP 等)。我们还使用 Spring.NET,并且一些容器对象具有请求范围(不是很多)。

IIS 服务器 --> 虚拟机,4 个 CPU,2 GB RAM。它们基于 Windows 2008 x64 SP2 Enterprise Edition。

使用 Sql Server 2008。

显然,两个 IIS 服务器的 CPU 一直在 60-70% 左右。

现在,我的问题是 60-70% 的负载是否可以接受,我们如何才能将其降低到更低的百分比(也许只使用一个 IIS 服务器)?+ 2 GB 内存够用吗?

资源最大可以达到 20mb,但是平均下来大约是 30kb。(资源在 30kb 左右的时候可以达到 60-70% 的负载)。

使用 weborb 保存的数据非常小(2kb)并且只是一个对象。

答案1

很大程度上取决于 CPU。我指的是物理 CPU。需要注意的一件事是 - VM 内部的 CPU 测量可能不准确。在外部检查 - 服务器的负载如何。根据虚拟化 CPU,您可能实际上没有太多负载......并查看 CPU 是否已满载。

  • 60% 到 70% 的负载是可以接受的。显然你可以处理近两倍的负载。
  • Ram 看起来很低,但是 - 你必须决定(例如:2gb 是否被使用?你不会说)。
  • 使用一台服务器不会更好,除非您无法实际分配粘性(即每个客户端只能转到一台服务器),大多数负载平衡器都支持这种分配(大多数 - 但大多数在这里就足够了)。

永远不要忘记 GZIP 非常耗 CPU。如果您在内部网中,最好关闭压缩并使用快速网络(1GB - 无论如何应该是标准)。

除此之外,很抱歉,我没什么可说的了。我会附上一个分析器,找出 CPU 负载花在哪里。也许(如果你幸运的话)你有一些非常糟糕的代码可以优化。

答案2

对于一个 IIS 来说,每秒 30 次调用算多吗?当然不,这不算什么。

我们的内容管理站点在峰值负载期间每秒的调用次数远超 300 次......但这不算什么。

但正如 TomTom 所说,有很多因素需要考虑。其中最主要的是应用程序。

相关内容