将 SSD 用于开发人员笔记本(WAMP/LAMP 堆栈)时的性能问题?

And*_*ázi 7 performance ssd web-development

我是一名 Web 应用程序开发人员,使用我的笔记本作为独立的开发环境(WAMP 堆栈)。我刚刚从配备 2GB RAM 和 SATA HDD 的 Core2 Duo Vista 32 位笔记本电脑切换到配备 4GB RAM 和 128 GB SSD (Corsair P3 128) 的 i5-2520M Windows 7 64 位笔记本电脑。

我最初的体验是我所期望的,快速启动,快速加载所有应用程序(Eclipse 现在需要 5 秒,而我的旧笔记本需要 30 秒),总体体验非常好。然后我开始构建我的开发堆栈,包括 LAMP(使用 VirtualBox 和 Debian 客户机)和 WAMP(Windows 原生 Apache + MySQL + PHP)。我想比较这两个。

这仍然很有效,然后我开始将我的项目拉入这些堆栈。令人讨厌的惊喜出现了,其中一个项目产生的响应时间比我的旧笔记本差很多(VirtualBox 和 WAMP 堆栈都是如此)。Apache、PHP 和 MySQL 配置在所有环境中几乎相同。我开始做很多基准测试和分析,这是我发现的:

  1. 所有通用基准测试(性能测试 7.0、HDTune Pro、wPrime2 等)都为新笔记本带来了巨大优势。这里没有什么令人惊讶的。磁盘特定测试表明,SSD 的读/写操作峰值在 380M/160M 左右,并且所有不同大小的块操作也表现良好。

  2. 开始使用 Apache Benchmark 对小型静态 HTML 文件(10 个并发线程,500 次迭代)进行 Apache 性能基准测试。

    • 旧笔记本:最少 47 毫秒,中位数 111 毫秒,最多 156 毫秒
    • 新的 WAMP 堆栈:最小 71 毫秒,中值 135 毫秒,最大 296 毫秒
    • 新的 LAMP 堆栈(在 VirtualBox 中):最少 6 毫秒,中位数 46 毫秒,最多 175 毫秒


    在这里我不明白为什么原生 WAMP 堆栈表现如此糟糕,但至少 LAMP 环境带来了预期的速度。

  3. 非缓存 PHP 内容的 Apache 性能测量。PHP 运行 1000 次循环并生成 sha1(uniqid()) inisde。同样,10 个并发线程,500 次迭代用于基准测试。

    • 旧笔记本:最小 0ms,中值 39ms,最大 218ms
    • 新的 WAMP 堆栈:最少 20 毫秒,中位数 61 毫秒,最多 186 毫秒
    • 新 LAMP 堆栈(在 VirtualBox 中):最小 124 毫秒,中值 704 毫秒,最大 2463 毫秒


    我勒个去?新的LAMP表现惨不忍睹,甚至新的原生WAMP也被旧笔记本超越。

  4. PHP + MySQL 测试。该测试包括连接到数据库并在另外 3 个(索引)表上使用 INNER JOIN 从表中读取单个记录,在循环中重复 100 次。数据库是相同的。10 个并发线程,100 次迭代用于基准测试。

    • 旧笔记本:最小 1201 毫秒,中值 1734 毫秒,最大 3728 毫秒
    • 新的 WAMP 堆栈:最少 367 毫秒,中位数 675 毫秒,最多 1893 毫秒
    • 新的 LAMP 堆栈(在 VirtualBox 中):最小 1410 毫秒,中值 3659 毫秒,最大 5045 毫秒


    并发设置为 1(而不是 10)的相同测试:

    • 旧笔记本:最小 1201 毫秒,中值 1261 毫秒,最大 1357 毫秒
    • 新的 WAMP 堆栈:最小 399 毫秒,中值 483 毫秒,最大 539 毫秒
    • 新的 LAMP 堆栈(在 VirtualBox 中):最小 285 毫秒,中值 348 毫秒,最大 444 毫秒


    严格按照我的目的,因为我使用的是独立的开发环境(= 低并发),所以我可以对第二个测试的结果感到满意。虽然我不知道为什么 VirtualBox 环境在更高的并发性下表现如此糟糕。

  5. 最后我进行了包含许多php文件的测试。我一开始提到的应用程序,性能很差,引导程序很重,在初始化时加载了数百个小型库和配置文件。所以这个测试什么都不做,只包含大约 100 个文件。并发设置为 1,100 次迭代:

    • 旧笔记本:最小 140 毫秒,中值 168 毫秒,最大 406 毫秒
    • 新的 WAMP 堆栈:最小 434 毫秒,中值 488 毫秒,最大 604 毫秒
    • 新的 LAMP 堆栈(在 VirtualBox 中):最小 413 毫秒,中值 1040 毫秒,最大 1921 毫秒


    即使我认为 VirtualBox 是通过共享文件夹访问这些文件的,这会稍微减慢速度,但我仍然不明白旧笔记本如何在这两种新配置上表现如此出色。而且我认为这是性能缓慢的真正根源,因为应用程序使用了更多包含,并且整个引导程序将在页面请求中发生多次(例如,对于每个 AJAX 调用)。

总结一下,我这里有一个全新的高性能笔记本,它可以在 20 秒内加载相同的页面,而我的旧笔记本可以在 5-7 秒内完成。不用说,我现在不是一个很快乐的人。

为什么您认为我会遇到这些糟糕的性能值?我有哪些选择来补救这种情况?

似乎我终于找到了问题的根源,显然 SSD 在具有 Intel HM55 或 PM55 芯片组的笔记本电脑中使用时可能会出现性能下降。请在下面查看我自己的完整答案。

And*_*ázi 1

经过漫长的一周努力寻找更好的性能设置,我终于找到了一些可以达到预期结果的调整。(这是一台Fujitsu LIFEBOOK S751笔记本,采用Intel HM65芯片组和基于Phoenix TrustedCore笔记本的BIOS)

在 BIOS 中,在高级/杂项设置、硬件电源管理部分下,有两个配置选项

  • 空闲状态下的 CPU 节能 (AC)
  • 空闲状态下的 CPU 节能(电池)

第一个设置为“节能”,第二个设置为“长电池寿命”。我将两者都设置为正常,你瞧,我在所有测试用例上都得到了更好的回复时间。

显然其他人也遇到了这个问题: http://forum.notebookreview.com/solid-state-drives-ssds-flash-storage/513313-laptops-w-intel-series-5-chipset-can-not- take-full-advantage-fast-ssds.html

引用这个线程:

根据多个成员运行的基准测试,配备 Intel HM55 和 PM55 的笔记本电脑似乎无法充分利用快速 SSD。这些芯片组在现代笔记本电脑中非常常见。性能损失在 4K 随机读写性能中尤其明显。这些问题似乎是由积极实施节能功能引起的......

当然,现在风扇每 5 秒左右旋转一次,这很烦人,但至少我能够完成我的工作。