确定所需服务器数量的最佳方法

时间:2020-03-05 18:52:35  来源:igfitidea点击:

一个Web服务器可以处理多少流量?看看我们是否超越此范围的最佳方法是什么?

我有一个ASP.Net应用程序,有数百个用户。它的各个方面都占用大量处理器,但是到目前为止,我们仅用一台服务器来运行SqlServer和站点都做得很好。它运行Windows Server 2003,3.4 GHz,带有3.5 GB的RAM。

但是最近我开始注意到在各个时间的速度都变慢了,我想知道确定服务器是否因使用应用程序而过载或者是否需要做一些修复程序的最佳方法是什么(我不如果我只是希望从包装盒中获得太多期望,那么我真的很想花很多时间寻找一些小的优化方法。

解决方案

回答

我们需要的是一些有关容量规划的信息。

容量规划是规划增长并预测高峰使用期以满足系统和应用程序容量需求的过程。它涉及广泛的性能测试,以建立负载下应用程序的资源利用率和事务吞吐量。首先,测量站点当前收到的访问者数量以及每个用户对服务器的需求量,然后计算支持当前和将来所需的计算资源(CPU,RAM,磁盘空间和网络带宽)使用水平。

回答

如果我们有权使用某些性能分析工具(例如Visual Studio Team Suite版中的那些工具),则可以尝试设置测试服务器并对它运行一些综合请求,然后查看代码中是否有任何特定部分花费了不合理的时间跑步。
在执行此操作之前,我们可能应该检查一段时间内CPU和内存使用情况的一些图表,以查看是否可能是这样。 (类似于UNIX"平均负载"的数字可能是一个有用的指标,我不知道Windows是否有类似的东西。基本上,每个时间片上需要CPU时间的线程的平均数量。)

还要检查显而易见的一点,即我们还没有耗尽带宽。

回答

在该硬件上,.NET应用程序应能够每秒处理约200-400个请求。如果我们只有几百个用户,我怀疑我们每秒只能看到2个请求,因此即使在运行SQL Server的情况下,我也认为我们在该设备上有很大的容量。

如果不了解所有详细信息,我会说不,添加服务器将不会提高性能。

顺便说一句,如果我们不使用输出缓存,那么我将从这里开始。

回答

测量,测量,测量。里科·马里亚尼(Rico Mariani)总是这么说,他是对的。

测量请求/秒,RAM,CPU,会话等。

我们可能会提出一种缓存策略(输出缓存,数据缓存,缓存依赖项等)。

另请参阅SQL Server的运行方式。索引是一个不错的起点,但并不是唯一要看的东西。