经典ASP服务器和SQL Server之间的性能

时间:2018-06-03 18:44:34

标签: sql-server asp-classic

问题:

尝试使用单独的SQL Server 2017和IIS 7.5服务器获得相同(或更好)的性能,而不是将它们放在同一台计算机上。

努力实现未来增长的可扩展性。

在运行IIS和SQL Server 2017 Developer的同一个盒子上使用WebSurge,在6个内核和12个逻辑处理器上运行32gb ram,机器没有重大的性能问题。我们可以以极快的速度以每秒4000个请求的速度在WebSurge上运行以下代码。

问题:

一旦我们在本地LAN上的同一千兆位连接上的单独IIS盒和单独的SQL Server上运行相同的代码,我们在自己的盒子上运行的IIS上每秒只能获得大约350个请求。注意:SQL Server在运行它的盒子上使用< 1%CPU来处理这350个请求,因此它不是查询或SQL Server性能的问题,因为相同的代码在同一台机器上运行超过4000的IIS

LAN电缆插入同一个交换机,从IIS到SQL Server,PING始终<1ms。

在完成的请求如此大幅减慢的情况下,我们做错了什么,但是当在同一个IIS / SQL Server框上再次运行时...它每秒超过4000个。

我们计划很快创建大型服务,网络流量将超过每秒4000个请求,因此我们需要额外的服务器,负载平衡器等。我们目前正在努力了解为什么我们每秒只能处理350个请求一个IIS框,与服务器不在同一台机器上。

我还要指出在任何一种情况下CPU都无法运行超过50%。

运行此代码时,SQL Server仅消耗大约10%。

<%
rangedb="Provider=SQLOLEDB;" & _ 
        "Data Source=10.10.1.220,1433;" & _ 
        "Initial Catalog=xxxxxxx;" & _ 
        "Network=DBMSSOCN;" & _ 
        "User Id=xxxxxx;" & _ 
        "Password=xxxxxx" 

set cnn = Server.CreateObject("ADODB.Connection")
set rst = Server.CreateObject("ADODB.RecordSet")

cnn.open rangedb

sqltext = "SELECT page_content,template_id FROM master_templates_data where  (template_id='165' or template_id='166' or template_id='167' or template_id='168' or template_id='169' or template_id='170' or template_id='171' or template_id='172' or template_id='173' or template_id='182' or template_id='183' or template_id='184' or template_id='185' or template_id='186' or template_id='187' or template_id='188' or template_id='189')"

rst.CursorLocation=2
rst.CursorType=0
rst.LockType=1
rst.Open sqltext,cnn

dataArray = rst.GetRows()

rst.close

cnn.close
%>

我们已经浏览了整个互联网,无法找到原因。

任何帮助将不胜感激!

(是的,我们知道经典的ASP不是这样的项目的方式,但我们想为我们目前的情况解决这个问题)

如果有更好的替代方案,例如MySQL和PHP / Linux,我们会对性能如何更好的方式持开放态度。

这是我们第一次在这里发帖,所以请善待:)

0 个答案:

没有答案