Iis 7 IIS7和CGI的性能问题(相对于IIS6)

Iis 7 IIS7和CGI的性能问题(相对于IIS6),iis-7,cgi,iis-6,windows-server-2008,delphi-7,Iis 7,Cgi,Iis 6,Windows Server 2008,Delphi 7,我的公司正在将应用程序/web服务器从Windows 2003升级到Windows 2008,主要是因为托管公司不再提供2003,我们需要新的硬件来提高性能 我们的应用程序是用Delphi7 CGI模块编写的,数据库是这样的:这是一种使用HalcyonDataSet组件访问的DBF文件 我们的旧服务器是: Windows 2003 Web SP2 IIS6-32位 2GB内存 英特尔至强CPU 3040@1.86GHz双核 250 GB SATA RAID 1硬盘驱动器 新服务器是: Windo

我的公司正在将应用程序/web服务器从Windows 2003升级到Windows 2008,主要是因为托管公司不再提供2003,我们需要新的硬件来提高性能

我们的应用程序是用Delphi7 CGI模块编写的,数据库是这样的:这是一种使用HalcyonDataSet组件访问的DBF文件

我们的旧服务器是:

Windows 2003 Web SP2 IIS6-32位 2GB内存 英特尔至强CPU 3040@1.86GHz双核 250 GB SATA RAID 1硬盘驱动器 新服务器是:

Windows 2008 Web R2 IIS7-64位 4 GB内存 英特尔至强CPU 3320@2.50GHz四核 500 GB SATA RAID 1硬盘驱动器 这个应用程序主要需要很高的读取速度,因为我们必须在表格上循环加载信息。是的,我们使用索引来查找位置

生产服务器的负载通常低于每秒5个请求,很少有,除非google的索引高达10-20。有时,请求需要一些时间搜索、销售清单

问题:我们有严重的性能问题。新服务器工作正常,但请求现在需要两倍的时间才能完成。糟糕的是,4个内核在执行过程中似乎相当空闲

我在应用程序池中启用了32位应用程序。 我曾尝试创建一个包含4个工作进程的web花园,并同时启动4个cpu密集型CGI,但旧服务器仍然优于新服务器。我曾试图提高工作进程的优先级,但没有任何区别

有人知道会发生什么吗?我能做些什么来提高新服务器的性能

显然,除了重写我们的应用程序之外


提前谢谢

您正在读取大量顺序数据,而您的cpu和ram处于空闲状态,这意味着HDD是瓶颈,因此请将硬盘RAID升级到SSD。

经过大量测试,我们得出结论,IIS处理CGI可执行文件的方式必须受到限制,通过安全检查来惩罚磁盘访问

我们尝试启动控制台可执行文件,这与CGI访问同一个FoxPro数据库的效果基本相同,执行时间大致相同,尽管它们本应得到改进,但至少没有更糟

解决方案:使用Windows 2003标准版重新安装新服务器

标准版而非Web版允许Windows 2003使用所有四个内核和4GB内存。 Windows 2003和IIS6不会惩罚我们的CGI。 现在,单个CGI的执行时间比旧服务器上的执行时间少30%左右。另外,4个内核允许我们处理两倍的并发CGI


无论如何谢谢你

感谢穆罕默德,但硬件升级不是一个选项。我们的预算很紧,我们已经升级到了更好的服务器,具有更快的CPU和理论上更快的RAID 1 SATA驱动器。