64位Linux上的进程内存和CPU限制?

可能重复:
JVM内存和CPU使用的实际限制?

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

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

假设这台电脑有:

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

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

是否有任何可能会限制使用和效率的实际考虑因素?

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

一个普通的可执行文件(即一个C程序)是否可以利用上述规格?

谢谢,盖伦

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

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

具体来说,很高兴知道你在编写什么样的应用程序。