Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net电子商务性能_Asp.net_E Commerce - Fatal编程技术网

Asp.net电子商务性能

Asp.net电子商务性能,asp.net,e-commerce,Asp.net,E Commerce,我正在用C#在Asp.NET3.5上开发电子商务项目。我使用3层(数据+业务+用户界面)结构来访问数据库中的数据(Msql 2005) 有存储过程和从它们开始的一切。(CRUD方法) 这里有一个性能问题,项目运行得太慢了。我在事务模型中找不到任何问题 此外,该项目在海外国家的共享主机上运行。数据库服务器和web服务器在不同的机器上运行。数据库服务器有近1000个数据库 我如何测试和了解问题出在哪里?既然您运行的是共享主机服务,我想这就是您的问题所在。您正在与这些服务器上的所有其他网站和数据库竞争

我正在用C#在Asp.NET3.5上开发电子商务项目。我使用3层(数据+业务+用户界面)结构来访问数据库中的数据(Msql 2005)

有存储过程和从它们开始的一切。(CRUD方法)

这里有一个性能问题,项目运行得太慢了。我在事务模型中找不到任何问题

此外,该项目在海外国家的共享主机上运行。数据库服务器和web服务器在不同的机器上运行。数据库服务器有近1000个数据库


我如何测试和了解问题出在哪里?

既然您运行的是共享主机服务,我想这就是您的问题所在。您正在与这些服务器上的所有其他网站和数据库竞争服务器资源

为了确保这一点,我将建立一个本地环境,模仿您的生产环境。然后进行一些标准的压力测试,看看它的表现如何。如果它的性能符合您的预期,那么它可能就是您的托管解决方案


有了共享托管解决方案,你真的可以得到你所付出的。如果这是一个需要比现在快得多的系统,那么你应该考虑一个专用的托管解决方案。

由于有1000多个数据库共享资源,我想尝试一下,这可能是你的问题。。。。如果您连接到数据库,运行一个简单的查询需要5秒钟,那么您就可以猜出问题所在

我会在web服务器上运行的“测试页面”上添加一些秒表功能。这将为您提供基本信息,以查看在等待数据库返回查询时是否存在“瓶颈”。如果你已经做到了这一点,那么我会怀疑这将是你的网络服务器

最后一个选项是设置一个简单的低规格机器,上面有DB和web服务器,然后进行测试。根据网站的访问量,你应该能够很好地了解其响应时间


诸如的工具也可能有一些帮助,但是这些工具通常更多地用于微调

我建议您看看追踪:


这使您能够查看堆栈跟踪(本文最后一张图片),并定位性能瓶颈。

我开发的一个快速解决方案可以帮助您在我的web应用程序上记录性能。我有一个web服务器和DB服务器运行类似的声音应用程序。我编写了一个web服务,它运行“基准测试”存储过程并返回运行时。我编写了一个win应用程序,它在我的开发服务器上运行,调用web服务,传递要运行的存储过程的名称,以及整个请求所需的时间。win应用程序将数据写入日志文件,并作为计划任务每10分钟运行一次。额外的提示包括当性能连续3次超过指定的阈值、连接失败以及在经过一段缓慢的时间后恢复到正常性能时,自动向团队成员发送电子邮件


这提供了在任何给定时间用户在网站上的体验如何的一般指示,并为团队敲响了警钟。这并不是最好的解决方案,但我在几个月前的几个小时内编写了它,并多次使用它创建的数据进行故障排除

谁在主持……是arvixe:)