Linux 系统是否存在单一的衡量标准?
不,谢天谢地,还没有人提出 Lhinuxstone (tm) 这样的衡量标准。即使有,那也没有什么意义:Linux 系统被用于许多不同的任务,从高负载的 Web 服务器到供个人使用的图形工作站。没有任何单一的衡量标准可以描述 Linux 系统在如此不同情况下的性能。
那么,用十几个数字来概括各种 Linux 系统的性能怎么样?
那将是理想的情况。我希望看到它成为现实。有人愿意志愿参加一个 Linux 基准测试项目 吗?建立一个网站和一个在线的、完整的、设计良好的报告数据库?
... BogoMips ... ?
BogoMips 与您系统的性能无关。请查看 BogoMips Mini-HOWTO。
什么是 Linux 的“最佳”基准测试?
这完全取决于人们想要测量 Linux 系统的哪个性能方面。有不同的基准测试来测量网络(以太网持续传输速率)、文件服务器 (NFS)、磁盘 I/O、FPU、整数、图形、3D、处理器-内存带宽、CAD 性能、事务时间、SQL 性能、Web 服务器性能、实时性能、CD-ROM 性能、Quake 性能 (!),等等... 据我所知,目前还没有一个基准测试套件可以支持所有这些测试。
Linux 下最快的处理器是什么?
在什么任务中最快? 如果主要是面向数值计算,那么非常高时钟频率的 Alpha 处理器(600 MHz 甚至更高)应该比其他任何处理器都快,因为 Alpha 处理器的设计就是为了这种性能。另一方面,如果想要组建一个非常快速的新闻服务器,那么选择快速的硬盘子系统和大量的 RAM 可能会比更换处理器带来更高的性能提升,而且花费的金钱也相同。
那么,让我重新措辞上一个问题:是否存在一种处理器在通用应用程序中速度最快?
这是一个棘手的问题,但答案却非常简单:否。即使对于通用应用程序,也总能设计出更快的系统,而与处理器无关。通常,在所有其他条件相同的情况下,更高的时钟频率将带来更高的系统性能(以及更多的麻烦)。从(通常不可)升级的主板上取出一个旧的 100 MHz 奔腾处理器,然后插入 200 MHz 版本,您应该会感觉到额外的“力量”。当然,如果只有 16 MB 的 RAM,同样的投资更明智的做法是花在额外的 SIMM 内存条上...
那么时钟频率会影响系统的性能?
对于大多数任务(除了 NOP 空循环,顺便说一句,这些循环会被现代优化编译器删除),时钟频率的增加不会给您带来线性的性能提升。非常小的处理器密集型程序,它们可以完全放入处理器内部的一级缓存(L1 缓存,通常为 8 或 16 KB),其性能提升将等同于时钟频率的增加,但大多数“真正的”程序都比这大得多,它们的循环无法放入 L1 缓存,与其他进程共享 L2(外部)缓存,依赖于外部组件,并且性能提升会小得多。这是因为 L1 缓存与处理器以相同的时钟频率运行,而大多数 L2 缓存和所有其他子系统(例如 DRAM)都将以较低的时钟频率异步运行。
好的,那么,关于这个问题的最后一个问题:哪种处理器对于通用 Linux 用途具有最佳的性价比?
定义“通用 Linux 用途”并非易事!对于任何特定的应用程序,在任何给定时间都总会有一种处理器具有最佳的性价比,但随着制造商发布新的处理器,它会相当频繁地变化,因此回答“XYZ 处理器以 n MHz 运行”将是一个快照式的答案。但是,与您将要组装的整个系统的价格相比,处理器的价格是微不足道的。所以,实际上,问题应该是如何最大化给定系统的性价比?而这个问题的答案很大程度上取决于为所考虑的配置设定的最低性能要求和/或最高成本。有时,现成的硬件将无法满足最低性能要求,而昂贵的 RISC 系统将是唯一的选择。对于家庭使用,我推荐一个均衡的、同构的系统以获得整体性能(现在去弄清楚我所说的均衡和同构是什么意思 :-);处理器的选择是一个重要的决定,但它与选择硬盘类型和容量、RAM 容量、显卡等等同样重要...
什么是“显著”的性能提升?
我会说任何低于 1% 的提升都不显著(可以描述为“边际”)。我们人类很难感知到响应时间相差 5% 的两个系统之间的差异。当然,一些硬核基准测试人员不是人类,他们会告诉你,当比较性能指标为 65.9 和 66.5 的系统时,后者“绝对更快”。
如何在最低成本下获得“显著”的性能提升?
由于大多数源代码都可用于 Linux,因此仔细检查和重新设计关键子例程的算法可以在某些情况下产生数量级的性能提升。如果处理的是商业项目,并且不想深入研究 C 源代码,则应请一位 Linux 顾问。请参阅 Consultants-HOWTO。