为什么服务器性能这么差?如何才能提高服务器速度?

为什么服务器性能这么差?如何才能提高服务器速度?

使用 Windows Server2008 R2 Standard(带 Service Pack One)时处理速度非常慢。情况:使用文本数据读取文本文件以填充一系列 MS Sql 表。转换后的数据用于生成每月 PDF 发票文件;PDF 文件直接保存到硬盘驱动器。该应用程序是多线程的,一个线程用于文本转换,三个线程用于 PDF 发票生成。文本转换与发票生成同时进行。

应用软件:使用 Microsoft Visual Studio 2010 Ultimate 的 C#。Crystal Report Writer 2011 带有运行时 13_0_3 64 位版本。目标平台为 x64;也测试为 x86,任何 CPU 均有类似结果。Microsoft .NET Framework 4.0。Microsoft Sql 2008

问题:软件运行速度非常慢。文本文件的转换速度大约为每秒 650 条记录,而 PDF 文件的生成速度大约为每分钟 12 张发票。要转换的文本文件大小为 600 MB,需要生成 7,000 张发票。

该软件从相同的分发文件安装在三台不同的机器上。每台机器上都转换了相同的文本文件。执行该应用程序的用户是每台机器上的管理员。唯一的差异是机器和操作系统。配置如下:

服务器: 操作系统:Windows Server2008 R2 Standard 64 位 (6.1, Build7601) SP1 Service Pack: 系统制造商:IBM 系统型号:System x3550 M3-[7944AC1]- BIOS:默认系统 BIOS 处理器:Intel® Xeon® CPU E5620@ 2.4GHz (16 个 CPU) 内存:16384MB

笔记本电脑:操作系统:Windows 7 Home Premium Standard 64 位(6.1,Build7601)系统制造商:惠普系统型号:HP Pavilion dv7 笔记本电脑 BIOS:默认系统 BIOS 处理器:AMD Phenom II N640 双核处理器 2.9GHz(2 个 CPU)内存:6144MB

台式机:操作系统:Windows 7 Professional 64 位 (6.1, Build7601) SP1 系统制造商:戴尔公司 系统型号:OptiPlex 960 BIOS:Phoenix ROM BIOS PLUS 版本 1.10 A11 处理器:Intel Core™2 Quad CPU Q9650 @3.00GHZ (4 CPU) 内存:16384MB

每台机器的加工结果:

该应用程序执行了七次,平均值显示如下。

Machine     Text Records        Invoices Generated
            Converted Per Minute        Per Minute


Server (1)      650             12
Notebook        980             17
Desktop         2,100               45

(1)该服务器专用于执行此应用程序;没有执行其他应用程序。

问:为什么服务器性能这么差?如何才能提高服务器速度?

答案1

Windows 客户端和服务器版本之间的区别之一在于“系统属性”中“性能选项”屏幕的“高级”选项卡。

调整以获得最佳性能:程序或后台服务。

客户端 SKU 默认设置为程序,服务器 SKU 默认设置为后台服务。

该设置实际上的作用是调整操作系统的线程量。线程量是指线程调度程序决定安排另一个线程执行或继续让当前线程执行之前允许线程运行的时间量。

“后台服务”或“服务器”设置使线程量子很多更长。这意味着上下文切换减少,也意味着服务器线程在被另一个线程中断之前有更好的机会完成请求。

从 Windows 7 和 2008 R2 开始,每个线程量子 2 个时钟间隔与每个线程量子 12 个时钟间隔之间的差异。

如果各个线程的工作负载不匹配,从而需要进行上下文切换,那么这可能会导致服务器上运行的多线程应用程序出现性能问题。

相关内容