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 配置在所有环境中几乎相同。我开始做很多基准测试和分析,这是我发现的:
所有通用基准测试(性能测试 7.0、HDTune Pro、wPrime2 等)都为新笔记本带来了巨大优势。这里没有什么令人惊讶的。磁盘特定测试表明,SSD 的读/写操作峰值在 380M/160M 左右,并且所有不同大小的块操作也表现良好。
开始使用 Apache Benchmark 对小型静态 HTML 文件(10 个并发线程,500 次迭代)进行 Apache 性能基准测试。
在这里我不明白为什么原生 WAMP 堆栈表现如此糟糕,但至少 LAMP 环境带来了预期的速度。
非缓存 PHP 内容的 Apache 性能测量。PHP 运行 1000 次循环并生成 sha1(uniqid()) inisde。同样,10 个并发线程,500 次迭代用于基准测试。
我勒个去?新的LAMP表现惨不忍睹,甚至新的原生WAMP也被旧笔记本超越。
PHP + MySQL 测试。该测试包括连接到数据库并在另外 3 个(索引)表上使用 INNER JOIN 从表中读取单个记录,在循环中重复 100 次。数据库是相同的。10 个并发线程,100 次迭代用于基准测试。
并发设置为 1(而不是 10)的相同测试:
严格按照我的目的,因为我使用的是独立的开发环境(= 低并发),所以我可以对第二个测试的结果感到满意。虽然我不知道为什么 VirtualBox 环境在更高的并发性下表现如此糟糕。
最后我进行了包含许多php文件的测试。我一开始提到的应用程序,性能很差,引导程序很重,在初始化时加载了数百个小型库和配置文件。所以这个测试什么都不做,只包含大约 100 个文件。并发设置为 1,100 次迭代:
即使我认为 VirtualBox 是通过共享文件夹访问这些文件的,这会稍微减慢速度,但我仍然不明白旧笔记本如何在这两种新配置上表现如此出色。而且我认为这是性能缓慢的真正根源,因为应用程序使用了更多包含,并且整个引导程序将在页面请求中发生多次(例如,对于每个 AJAX 调用)。
总结一下,我这里有一个全新的高性能笔记本,它可以在 20 秒内加载相同的页面,而我的旧笔记本可以在 5-7 秒内完成。不用说,我现在不是一个很快乐的人。
为什么您认为我会遇到这些糟糕的性能值?我有哪些选择来补救这种情况?
似乎我终于找到了问题的根源,显然 SSD 在具有 Intel HM55 或 PM55 芯片组的笔记本电脑中使用时可能会出现性能下降。请在下面查看我自己的完整答案。
经过漫长的一周努力寻找更好的性能设置,我终于找到了一些可以达到预期结果的调整。(这是一台Fujitsu LIFEBOOK S751笔记本,采用Intel HM65芯片组和基于Phoenix TrustedCore笔记本的BIOS)
在 BIOS 中,在高级/杂项设置、硬件电源管理部分下,有两个配置选项
第一个设置为“节能”,第二个设置为“长电池寿命”。我将两者都设置为正常,你瞧,我在所有测试用例上都得到了更好的回复时间。
引用这个线程:
根据多个成员运行的基准测试,配备 Intel HM55 和 PM55 的笔记本电脑似乎无法充分利用快速 SSD。这些芯片组在现代笔记本电脑中非常常见。性能损失在 4K 随机读写性能中尤其明显。这些问题似乎是由积极实施节能功能引起的......
当然,现在风扇每 5 秒左右旋转一次,这很烦人,但至少我能够完成我的工作。