性能测试服务器:如何表征性能?

性能测试服务器:如何表征性能?

我需要购买服务器,并且需要了解正确的指定方法。

根据答案对这个问题,有几个参数需要考虑:

  • CPU 速度 + CPU 核心数
  • RAM + 虚拟内存大小
  • 硬盘大小和性能
  • 网卡性能

我暂时不考虑成本、大小和功率。操作系统(如果重要的话)必须是 Windows Server 2008 R2。

因为最终的应用程序是基于 IIS 的,所以我想设置一系列测试来帮助我单独描述每一个应用程序的特征,以及同时描述其中两个或多个应用程序的特征。

例如分别:

  • CPU:编写一个简单的内存数学运算。生成执行此运算的多个线程。测量系统资源(Perfmon)、FLOPS、线程数随时间的变化。

  • RAM/虚拟内存:编写内存泄漏程序。测量系统资源随时间的变化。

  • 硬盘速度:在磁盘上创建一个大型数据文件。测量系统资源和文件随机访问部分的访问时间随时间的变化。

  • 网络速度:使用工具像这个查看网卡的性能。

到目前为止,一切都很好(尽管改进值得赞赏!)。一种可能性是它只是得到“Windows 体验指数“个人成绩。

我该如何描述它们之间的相互作用?

例如,可以通过编写一个简单的 Web 服务来测试网络 <==> CPU 交互,该服务会按照要求的速度输出数据。显然,这也是 IIS 的特征,但无论如何,这是最终系统的一部分。

再举一个例子,可以使用 IIS 提供静态大型图像文件(关闭任何缓存)来测试网络 <==> 硬盘速度交互。

是否有人知道一套可用于表征此类性能的测试?

显然,要了解服务器如何与真实软件协同工作,唯一的真正方法是部署它。我们尚未完成构建,因此这还不是一个选择(目前还不行!)。

答案1

现有的基准测试有很多,它们以各种方式表征系统性能。“Windows 体验指数”就是其中一种衡量标准,但还有许多其他衡量标准(无限的 CPU 基准测试、内存吞吐量衡量标准、任意数量排列的流式和随机访问模式下的磁盘 I/O、实际有用的 NIC 速度(以 bps 和 pps 为单位,有或没有 TCP),以及所有无限复杂的总线速度)。

但是,对于回答“我的应用程序的性能如何?”这个问题,这些都没有任何用处,因为您不知道应用程序的性能要求和特性是什么(因为它还不存在)。例如,“Windows 体验指数”是衡量各种硬件组件在运行 Windows微软的聪明人测量了抽象性能基准与 Windows 正常运行之间的关系,然后以此创建了他们的指数。如果不知道应用程序处理请求需要多少 CPU 时间,就无法有意义地获取 PassMark 分数之类的数字(随便举一个例子)并将其转化为有用的指标。

现在,如果你和 99% 之前问过这个问题的人一样,得到了完全相同的答案,你可能会经历某种“但是……但是……但是……我需要它!”的反应。对此唯一可能的回应归结为“运气不好”。物理定律并不关心我们是否想以超光速旅行,性能分析定律也不关心你想知道不可知的事情。

(如果您感到疑惑,那么一遍又一遍地重复这种类型的答案并不是一件很有趣的事情,这就是为什么我们不喜欢在 Server Fault 上提出“我需要什么服务器?”的问题。将它们标记为重复是行不通的,因为人们会抱怨这些答案不是重复的,因为 A 想知道他可以运行多少个 Wordpress 博客,而 B 想知道他可以运行多少个 Drupal 网站)。

相关内容