在64位Linux上处理内存和CPU限制?

时间:2011-07-12 16:08:51

标签: linux java memory-management jvm max

  

可能重复:
  Practical limitations of JVM memory and CPU usage?

让我们说金钱不是限制因素,我想编写一个在一台强大机器上运行的Java程序。

目标是让Java程序尽可能快地运行,而无需交换或转到磁盘

假设这台电脑有:

  • 1 TB RAM(64个16GB DIMM)
  • 64个处理器内核(8个8核处理器)
  • 运行64位Ubuntu

在JVM中运行的java程序的单个实例是否可以利用这么多RAM和处理器?

是否存在可能限制使用和效率的实际考虑因素?

  • 硬件限制(例如CPU可以在内存TB上一起工作吗?)
  • 操作系统进程(内存和线程)限制?
  • JVM内存/堆限制?
  • JVM线程限制?

常规可执行文件(即C程序)是否可以利用上述规范?

谢谢, 盖伦

1 个答案:

答案 0 :(得分:4)

是的,JVM可以利用那么多RAM和处理器。事实上,我有一台机器,其配置与您描述的几乎相同,只不过它正在运行RedHat。请记住,您的应用程序需要多线程才能使用所有处理器内核。

至于硬件限制,总会有缓存问题变得非常复杂,但经验法则是,如果所有线程都是随机访问RAM的多个区域,则可能会降低缓存一致性。如果它们大致相同的RAM区域,那么你可能会获得更好的缓存命中率。

对于细节,很高兴知道你计划编写什么类型的应用程序。