我为一家大型公司工作,该公司运行大量基于 x86 的服务器,我们在这些服务器上运行 JVM。
我们已经成功地对 VMWare ESX 进行了试验,以更好地利用我们的数据中心。但是这些仍然消耗每个处理单元的大量功率。
我有一个疯狂的想法,我们应该复活大型机,我们可以托管大量的 JVM 或虚拟机。
有没有人试过这个?有什么好的成本效益吗?
你会失去灵活性吗?例如,我们在公司的其他部分有大型机,但它们似乎对机器的使用更加严格。大量的变更控制,长的交货时间等
我为一家大型公司工作,该公司运行大量基于 x86 的服务器,我们在这些服务器上运行 JVM。
我们已经成功地对 VMWare ESX 进行了试验,以更好地利用我们的数据中心。但是这些仍然消耗每个处理单元的大量功率。
我有一个疯狂的想法,我们应该复活大型机,我们可以托管大量的 JVM 或虚拟机。
有没有人试过这个?有什么好的成本效益吗?
你会失去灵活性吗?例如,我们在公司的其他部分有大型机,但它们似乎对机器的使用更加严格。大量的变更控制,长的交货时间等
IBM 制造了一个特殊的 Java 协处理器,您应该认真考虑。我不会在通用引擎上运行 Java,因为这可能会增加许可软件的 MPU 费用。
我们拥有在 Windows、Linux 和 IBM SystemI(或 iSeries,或 AS/400,取决于 IBM 当年的心情)小型计算机上运行 Java 的丰富经验。在我看来,与现代多核 x86 CPU 相比,微型计算机平台的性价比似乎要低得多。
请注意,与当今的典型软件相比,Java 更容易从可用的多个内核中受益,因为它本质上是多线程的——当您运行多个 JVM 时,这将更加真实。
也就是说,您通常能够获得更多可用的 CPU 内核,并具有更好的带宽来访问小型机或大型机上的内存,以及磁盘子系统(整体)的更好吞吐量,因此这些系统可以很好地扩展,因为您折腾更多的 JVM在他们。
所有这一切都假设您谈论的是 Z/OS 上的 Java,而不是在大型机上运行 Linux VM,以利用更少机器带来的成本节约。
我对虚拟化的想法在此结束,这可能是您想要查看的路线,但我将从 Z/OS 开始,因为它是大型机传统上与我相关的东西,也是我熟悉的东西。我对大型机 Java 有一些经验。
简短的回答是,这取决于,但可能不是。你的应用究竟是什么?与 x86 服务器相比,大型机是一个困难的环境。如果您在 Websphere 之类的环境下运行 I/O 密集型工作负载,假设您的大型机未得到充分利用,这可能是值得的。
根据我的经验,Java 在大型机上运行速度非常慢,但那是因为我使用的系统是为开发人员的灵活性而非性能而设置的。这只是证明大型机的性能调整通常比普通服务器复杂得多,因为大型机将运行比通用 x86 服务器更多的工作负载。
请记住,大型机主要是为 I/O 吞吐量而设计的,并且在这方面可以胜过任何普通的 x86 服务器。它不是为进行大量计算密集型计算而设计的,因此如果您进行大量数学运算,它的性能不会胜过小型 x86 服务器集群。
大型机上的更改控制是有充分理由的——如果一台 x86 服务器出现问题,则重新启动它。如果大型机出现问题,它每停机一秒都会给公司造成损失。您还必须考虑您的应用程序依赖的任何本机代码或可能使用本机代码的第三方库。所有这些代码都必须移植。
与 x86 服务器相比,大型机的配置平均需要更长的时间。我建议,如果您想认真研究这一点,您可以制定比节能更好的业务案例,例如与当前业务应用程序紧密集成,并从概念验证或新应用程序的小规模开始。一种不是业务关键的,可以实施以利用大型机的优势。
IBM 大型机还可以在本机模式或类似于 VMWare 的虚拟化环境中运行 Linux。除非您的公司是该规则的例外,否则您的 Linux 实例将作为虚拟机运行。我对此没有太多经验,但是,如果您的应用程序不依赖本机代码并在 Linux 下运行,它可能会在运行 Linux 的大型机上运行。有关大型机上 Linux 的更多信息,请参阅此链接。
IBM 允许这样做。他们的一些大型机可以容纳 Java 加速器处理器,这些处理器在本地运行字节码以获得更高的性能。它们也有 DB2 加速器,可能还有一些用于 XML 操作。
我从来没有和他们中的任何一个一起玩,但我肯定很喜欢。
尽管我从 1975 年就开始从事这个行业,但我不再确定什么是“大型机”。我目前的开发机器有四个 3GHZ 处理器、8GB 内存和 750GB 磁盘空间(RAID 1,所以它真的是它的两倍)和两个 19 英寸纯平显示器。
那是因为我是有合同的。员工们都有比我强大得多的盒子。
我知道服务器机器,尤其是数据库服务器,速度要快得多。
大型机?
根据您的工作量,这值得一看!
仅使用 IBM 硬件,就有许多令人眼花缭乱的选项可供您使用:
它绝对值得考虑添加 java 处理器。(这些实际上与标准 cpu 并没有什么不同,只是它们仅限于 java jvm 工作负载——而且——最重要的是,它们不包括在基于 cpu 的软件许可定价中)。
您可以运行多个 Linux VM,每个都运行自己的 Java 应用程序。
您可以运行多个本机 VM,运行他们曾经称为 DOS 的极简操作系统,但它们每隔几年就会更改名称。软件许可证比主操作系统便宜,但它的功能非常有限,如果您运行的是自包含应用程序,这将是一个优势。
您可以在 Monster z/OS 环境中运行:-
一种。在 USS(Unix 系统服务)中,它几乎是在父 z/OS 中运行的完整 UNIX 操作系统。
湾。在自己的启动任务(== unix 守护进程)中运行您的 java 应用程序。
C。在 CICS 中运行您的应用程序。(可能不需要在通常使用 Servlet/J2EE API 的地方使用 CICS/Java API,因此您的应用程序需要重写。)