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

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

现在应用程序迁移到Windows 2008,Tomcat仍然是32位,应用程序使用32位Java编译,因此是32位应用程序.有了这个设置我2008年的性能.测试与使用Windows 2003时的工作方式不同.CPU利用率达到峰值,许多调用都被删除.

我在这里有以下问题.

>在64环境中运行32位应用程序会占用额外的CPU /内存,这会产生问题.
> Win 2003和Win 2008之间是否存在性能差异?
> 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主要有两种方式

>模拟32位指令.这在计算上非常昂贵,可能是CPU使用率飙升的原因.当与基于Intel Itanium(IA-64)的处理器一起使用时,通常就是这种情况.
>将处理器从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在同一个论坛上.

BTW我不确定你是否有一个选项,但你可以在64位Tomcat上使用run the same code without rebuilding(如果你没有使用任何特定于平台的库).

上一篇:void 0 与 undefined的区别


下一篇:前端数据存储