【问题标题】:Performance issues on IIS7 and CGI (versus IIS6)IIS7 和 CGI​​(与 IIS6 相比)的性能问题
【发布时间】:2013-12-10 12:58:04
【问题描述】:

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

我们的应用程序是用 Delphi 7(CGI 模块)编写的,数据库是(这有点尴尬)DBF 文件(使用 HalcyonDataSet 组件访问)。

我们的旧服务器是:

  • Windows 2003 Web SP2 (IIS6) - 32 位
  • 2 GB 内存
  • Intel Xeon CPU 3040 @1.86GHz(双核)
  • 250 GB SATA RAID 1 硬盘

新服务器是:

  • Windows 2008 Web R2 (IIS7) - 64 位
  • 4 GB 内存
  • Intel Xeon CPU 3320 @2.50GHz(四核)
  • 500 GB SATA RAID 1 硬盘

应用程序主要需要高读取速度,因为我们必须连续循环遍历表来加载信息(是的,我们使用索引来查找位置)。

生产服务器负载通常低于每秒 5 个请求(很少),除非 google 正在编制索引(最多 10-20 个)。有时请求需要一些时间(搜索、销售列表...)。

问题:我们遇到了严重的性能问题。新服务器运行良好,但请求现在需要双倍的时间才能完成。坏事是 4 个内核在执行过程中显得相当空闲。

我在应用程序池中启用了 32 位应用程序。 我尝试过创建一个网络花园(有 4 个工作进程),并同时启动 4 个 CPU 密集型 CGI,但旧服务器仍然胜过新服务器。我已经尝试增加工作进程的优先级,没有任何区别。

是否有人知道会发生什么,以及我可以做些什么来提高新服务器的性能?

(除了重写我们的应用,显然)

提前致谢!

【问题讨论】:

    标签: iis-7 cgi iis-6 windows-server-2008 delphi-7


    【解决方案1】:

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

    【讨论】:

    • 感谢 Muhammad,但硬件升级不是一种选择。我们的预算很紧,我们已经升级到更好的服务器,配备更快的 CPU 和理论上更快的 RAID 1 SATA 驱动器。
    【解决方案2】:

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

    我们尝试启动控制台可执行文件,它与 CGI 基本相同(访问相同的 FoxPro 数据库),并且执行时间大致相同(虽然它们应该有所改进,但至少它们没有更糟)。

    解决方案: 用 Windows 2003 Standard Edition 重新安装新服务器。

    标准版(而不是 Web 版)允许 Windows 2003 使用所有四个内核和 4GB 的 RAM。 Windows 2003 和 IIS6 不会惩罚我们的 CGI。 现在,单个 CGI 的执行时间比旧服务器上的执行时间减少了大约 30%。此外,4 个内核允许我们处理双倍并发 CGI。

    还是谢谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-17
      • 2015-10-04
      • 1970-01-01
      • 2011-11-11
      • 1970-01-01
      • 1970-01-01
      • 2020-12-10
      相关资源
      最近更新 更多