我有一台全新的 HP 服务器,装有 Windows 2012 r2 64 位。它有 2 个 Xeon 处理器 E-5 2603 v3。(1.6ghz)和 32 GB 内存,运行 XAMPP(apache 2.4、mysql 5.7、php 5.6)。该服务器尚未投入生产。
该程序有一些大脚本(例如生成患者临床病史的大型 pdf 文件,超过 450 页)。
我的个人电脑是一台标准电脑,配备英特尔酷睿 i3(3.2 ghz)处理器、4GB 内存、Windows 10 64 位。
我的个人电脑的性能怎么可能比新服务器好得多?在我的计算机上大约需要 40 秒的大型脚本,在新服务器上最多需要 3 分钟,运行相同版本的 apache、mysql、php 和完全相同的设置。
在脚本运行时,我打开任务管理器,发现新服务器仅使用了 9% 的 CPU。它仅使用了 12 个核心中的一个。而且内存使用率非常低。
我怀疑这种差异是由 i3 处理器相对于 xeon 的超线程造成的。可能吗?
有没有办法更好地利用资源?我知道新的服务器硬件运行正常,因为它已经经过 HP 的审查。
答案1
您基本上已经回答了自己的问题:在您的本地 PC 上,您有一个 3.2Ghz 的单线程。在您的服务器上,您有一个 1.6Ghz 的单线程。现在,您的 Xeon 处理器可以在每个周期执行更多指令,并且拥有更大的 L2 缓存。但除非您的软件利用它,否则所有这些都毫无意义。
当您使用您描述的单线程脚本时,您需要更少、更快的内核。而不是更多更小的内核。
为了使此脚本的扩展性更好,您可能必须对 PDF 生成过程进行线程化。在不了解您要生成的文档类型的情况下,我建议将生成过程分成几个部分,并并行运行每个部分。生成所有部分后,将生成的 PDF 粘合在一起。
如果你不能无论出于什么原因,如果你这样做,那么你可能无能为力。你需要购买适合你情况的硬件,在这种情况下,你就遇到了不匹配的情况。
答案2
Xampp 不适用于生产服务器。不适用于安全。适合测试/开发。而不是在您的“全新 hp 服务器”hyperv 角色上安装,然后安装 debian 和 apache,然后比较脚本的性能。