多个java实例-Xms-Xmx

多个java实例-Xms-Xmx,java,performance,jvm,Java,Performance,Jvm,我在同一台计算机上运行java游戏服务器和游戏客户端 游戏客户端与 java-Xms512m-Xmx1024m-cp等 还有游戏服务器 java-Xmx1024M-Xms1024M-jar等 计算机属性: Windows 7 64位 8GB内存 CPU i5-2500@3.3GHz 英特尔高清图形 问题:游戏客户端体验严重滞后。在游戏服务器上,还通过LAN连接另一个没有延迟问题的玩家 java虚拟机是否存在延迟问题?我使用的是机器的一个实例还是两个实例 为了优化性能,我可以设置一些不同的设置

我在同一台计算机上运行java游戏服务器和游戏客户端

游戏客户端与

java-Xms512m-Xmx1024m-cp等

还有游戏服务器

java-Xmx1024M-Xms1024M-jar等

计算机属性:

  • Windows 7 64位
  • 8GB内存
  • CPU i5-2500@3.3GHz
  • 英特尔高清图形
问题:游戏客户端体验严重滞后。在游戏服务器上,还通过LAN连接另一个没有延迟问题的玩家

java虚拟机是否存在延迟问题?我使用的是机器的一个实例还是两个实例

为了优化性能,我可以设置一些不同的设置吗

我认为问题在于一台机器正在运行,并且它的最大内存对于两个实例都不够,但我真的不知道如何解决这个问题

编辑:没有应用程序内存不足


解决方案

1: 更新的Java版本来自:

java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b05)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)

2: 更改服务器属性以最小化需求,这似乎是主要原因

3: 增加的内存: 带有
java-Xms1024m-Xmx1024m-cp等的游戏客户端
游戏服务器
java-Xmx2048M-Xms2048M-jar等
服务器目前运行速度约为700MB

java虚拟机是否存在延迟问题

可能吧。你没有提供足够的证据来确定这一点

令人费解的是,在不同机器上运行的客户机并不落后

我使用的是机器的一个实例还是两个实例

您正在运行两个
java
副本,那么您将拥有两个JVM

为了优化性能,我可以设置一些不同的设置吗

答案可能是肯定的。但是你没有提供足够的信息让我们提出可靠的建议


滞后可能由许多因素引起,包括:

  • 具有高延迟的网络
  • 堆太小的JVM
  • 生成大量垃圾并触发过多垃圾回收的应用程序
  • 竞争资源的应用程序的组合;e、 g.物理内存、CPU时间或磁盘或网络I/O时间
如果要找到问题的根本原因,您需要进行一些监控,以找出上面哪一项是可能的问题。使用任务管理器或其他工具来检查系统是否受CPU限制、内存不足、执行大量磁盘或网络操作等。使用VisualVM查看JVM内部的情况


或者,你可以尝试用一些完全不科学的“旋钮旋转”来修复:

  • 尝试使-Xms和-Xmx参数相同(这可能会减少开始时的延迟…)
  • 尝试增加JVM堆的大小;e、 g.将其设置为2gb而不是1gb
  • 尝试使用更新版本的Java
  • 尝试使用64位JVM,以便进一步增加堆大小
  • 尝试启用CMS或G1收集器(取决于您使用的JVM版本)

如果我对您当前使用的内容有更多了解,我可能会给出更具体的建议…

您在同一台计算机上使用了两个java应用程序,导致两个JVM运行。 对于具有8GB RAM的64位系统,建议JVM使用最大2GB(25%的物理内存或75%的可用物理内存,最大可达2GB),以获得更好的性能

您可能需要查看JVM大小调整。为了获得更好的性能,Xms和Xmx大小可以使用最大大小括号保持不变

为堆分配内存大小并不是唯一需要考虑的问题。JVM使用的内存不仅仅是堆。其他内存区域,如线程堆栈、方法区域、类装入器子系统、本机方法堆栈等。 当两个应用程序(游戏服务器、游戏客户端)都在运行时,两个应用程序之间的内存管理可能会出现问题,导致速度缓慢。
在这种情况下,客户端应用程序可以部署在另一个核心中(如果可用)。

每个java应用程序都将在其自己的进程下运行。延迟很可能是jvm本身造成的。如果其中一个应用程序内存不足,您可能会看到错误。服务器的I/O是否过多?它需要多少CPU?(即,当只有另一个客户端的服务器在运行时,cpu的利用率如何?)是的,它在不同的进程上运行,cpu在30-25。。。I/O问题似乎很有可能。您可以让visualVM尝试一下,看看您的应用程序是否一切正常+1它终于成功了!感谢您提及所有可能的原因!好导游!
java version "1.7.0_15"
Java(TM) SE Runtime Environment (build 1.7.0_15-b03)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)