11

我需要解释为什么我的应用程序在远程位置表现不佳。安装探查器对我来说会很不方便。我怀疑机器配置不当,但我需要一些简单的方法来证明标准应用程序在他们的机器上受到影响,从而免除我的应用程序并将注意力转移到他们的系统管理员身上。

理想情况下,我建议他们安装一个简单的 Java 应用程序来测试主机环境的性能。如果它可以返回一些关于 CPU、磁盘、网络等的规范,那将是完美的。

我希望在网上找到这样的东西,但到目前为止我的搜索一直没有成功。

4

1 回答 1

16

至于“简单的 Java 应用程序”,我之前做过类似的事情。我的工作重点是分析 Java VM(虚拟机 - “JVM”),而不是测试特定 Java 应用程序的性能。重点是测试托管操作系统的功能 - 练习:

  • 中央处理器
  • 记忆
  • 操作系统
  • 如果是虚拟化的,则服务器 VM(不是 JVM)本身——包括上述所有的虚拟化和物理组件。
  • 很大程度上忽略了外部因素,例如磁盘和网络。

我为此查看的解决方案包括:

SciMark 是一种复合 Java 基准测试,用于测量科学和工程应用中出现的数字代码的性能。它由五个计算内核组成:FFT、Gauss-Seidel 松弛、稀疏矩阵乘法、蒙特卡洛积分和密集 LU 分解。

选择这些内核是为了指示底层 JVM/JIT 在使用这些类型算法的应用程序上的执行情况。为了隔离内存层次结构的影响并专注于内部 JVM/JIT 和 CPU 问题,我们特意选择了较小的问题大小。更大版本的基准测试 (SciMark 2.0 LARGE) 解决了内存子系统的性能以及缓存外问题大小的问题。

它测量几个计算内核并以近似 Mflops(每秒百万次浮点运算)报告综合得分。

虽然有些过时(2004 年),但 SciMark 似乎仍然非常有效。

每次测试运行大约需要 30 秒来执行。

SPECjvm2008(Java 虚拟机基准测试)是用于衡量 Java 运行时环境 (JRE) 性能的基准测试套件,包含几个专注于核心 Java 功能的现实应用程序和基准测试。该套件侧重于 JRE 执行单个应用程序的性能;它反映了硬件处理器和内存子系统的性能,但对文件 I/O 的依赖性较低,并且不包括跨机器的网络 I/O。SPECjvm2008 工作负载模拟各种常见的通用应用程序计算。这些特征反映了该基准将适用于测量各种客户端和服务器系统上的基本 Java 性能的意图。

SPEC 还发现 Java 的用户体验很重要,因此该套件包括启动基准测试,并有一个称为 base 的必需运行类别,必须在没有任何 JVM 调整的情况下运行,以提高开箱即用的性能。

SPECjvm2008 基准测试亮点

  • 利用现实生活中的应用程序(如 derby、sunflow 和 javac)和以区域为中心的基准(如 xml、序列化、加密和 scimark)。
  • 还在执行 JRE 的上下文中测量操作系统和硬件的性能。

与 SciMark 不同,SPECjvm2008 需要更长的时间才能完全执行该套件 -只需 2 多小时


为了测试网络,我会使用类似iperf的东西,适用于 Linux/Windows/等。

对于测试磁盘性能,这背后有一门完整的科学,不知道你使用的是什么操作系统,我无法给你一个具体的答案。但是,例如,如果您使用的是 Linux,我会查看.

于 2012-09-13T12:37:36.353 回答