Windows 2003 与 Windows 2008 中的 Java Web 应用程序性能

标签 java windows performance vmware wow64

我有一个在 Tomcat 上运行的 Java Web/SIP 应用程序。该应用程序的大小适合在 Windows 2003 上运行,用于在虚拟化环境中使用 4 GB RAM 和 4 个 vCPU 进行 1000 个并发 session 。

现在应用程序迁移到 Windows 2008,Tomcat 仍然是 32 位的,应用程序是用 32 位 Java 编译的,所以是 32 位应用程序。使用此设置,我的 2008 年性能。测试的工作方式与在 Windows 2003 上的工作方式不同。CPU 利用率达到峰值,许多调用掉线。

我在这里有以下问题。

  1. 在 64 位环境中运行 32 位应用程序是否需要额外的 CPU/内存,这会在此处产生问题。

  2. Win 2003 和 Win 2008 之间有性能差异吗?

  3. Windows 2008 是否因为 64 位环境需要比 2003 更多的 CPU。

最佳答案

我们以前遇到过类似的情况,我们尝试将 32 位应用程序(基于 Tomcat 的 J2EE 应用程序)移动到 64 位机器上。我们观察你所面对的后果。

顺便说一句,你没有提到你为什么转向 64 位操作系统 :)。

让我们一一解答您的问题

在 64 位环境中运行 32 位应用程序是否需要额外的 CPU/内存,这会在此处产生问题。

一般来说是的。但这也取决于您的处理器架构。要理解这一点,请查看 Windows 在 64 位计算机上运行 32 位应用程序的方式。 64 位操作系统中有一个名为 WoW64 ( Windows 32-bit on Windows 64-bit )

的子系统

WoW64主要有两种方式

  1. 模拟 32 位指令。这在计算上非常昂贵并且可能是 CPU 使用率飙升的原因。与基于 Intel Itanium (IA-64) 的处理器一起使用时通常会出现这种情况。

  2. 将处理器从 64 位模式切换到 32 位模式。在这里,每当需要执行 32 位应用程序线程时,处理器就会切换到 32 位模式(兼容模式),然后再切换回 64 位模式。这比早期的仿真机制相对更快。

Win 2003 和 Win 2008 之间是否存在性能差异。

这是非常主观的。这取决于您使用的硬件类型。即使您有 64 位操作系统和硬件,很大程度上取决于硬件的种类、主板 CPU 等。64 位操作系统旨在利用卓越的硬件,而 32 位操作系统和机器则无法利用地址空间等限制

Windows 2008 是否因为 64 位环境需要比 2003 更多的 CPU。

是的。正如上面提到的@EJP,它有more things to offer .功能更强大的操作系统需要更高级的硬件。您的特定应用程序可能需要也可能不需要任何 Win 2008 特定功能。这就是您需要打电话了解为什么需要从 32 位迁移到 64 位的原因。这是 similar post在同一个论坛上。

顺便说一句,我不确定你是否有选择,但你可以 run the same code without rebuilding (如果您没有使用任何特定于平台的库)在 64 位 Tomcat 上。

关于Windows 2003 与 Windows 2008 中的 Java Web 应用程序性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9782760/

相关文章:

java - 命令按钮问题

windows - IPv4 属性 UI 中与 "Use the following IP Address"等效的 Powershell 是什么?

windows - 使用 AutoIT 在浏览器中选择一些元素

c++ - 如何复制当前进程?

python - 如何知道算法是否可以变得更快

java - double 格式设置为不包含小数位

java - 您能否重写抽象父类(super class)中的方法,并将其在子类中定义为 Java 中的抽象方法?

Java性能: private static final String vs local String ?堆空间中创建的对象数量

c++ - 将 uintptr_t 转换为 bool 会多次减慢 SSO 基准测试

java - DexArchiveMergerException 程序类型已存在 : a. a.a