JAR 执行期间的内存问题
Memory issue during JAR execution
我有大约 8 个 API 的 JAR 和 spring 云中的 4 个(Zuul、Hystrix、Config-Server、Eureka)。我现在 运行 一台服务器中的所有 jar,但我们稍后会在生产时进行扩展。
AWS Linux 服务器有 16GB 内存。我遇到的问题是服务器由于某种原因不断耗尽内存,当我尝试执行 Jar 时出现以下错误。
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x000000078fb80000, 293601280, 0) failed; error='Cannot allocate memory' (errno=12)
错误不是特定于特定的 jar,它是随机的。
来自服务器的内存(目前我部署了 9 个 jar):-
free -m
total used free shared buff/cache available
Mem: 15630 13684 1835 17 110 1781
有没有人遇到过类似的问题。如果需要任何其他信息,可以提供更多信息。
我们将不胜感激。
这通常发生在 JVM 尝试使用更多内存且可用且 OS 在程序启动后拒绝时。我会尝试减少堆大小,为系统提供更多可用内存。
您几乎没有 buffer/cache 使用过,这让我觉得您的可用内存有时会小于这个大小。 (只是不是当你拿这个样本的时候)
这台机器有多少免费掉期space?
我在执行作业中添加了 java 参数,这似乎解决了问题。
java -Xmx64m -Xss256k -jar abc.jar
在此之后,即使我在同一台服务器上部署了 13 个 jar,我还剩下 10GB 的内存,在我添加参数之前是 1.7GB。
JAVA 参数之前的内存:
free -m
total used free shared buff/cache available
Mem: 15630 13684 1835 17 110 1781
Java 参数后的内存:
free -m
total used free shared buff/cache available
Mem: 15630 4927 8769 25 1932 10373
我有大约 8 个 API 的 JAR 和 spring 云中的 4 个(Zuul、Hystrix、Config-Server、Eureka)。我现在 运行 一台服务器中的所有 jar,但我们稍后会在生产时进行扩展。
AWS Linux 服务器有 16GB 内存。我遇到的问题是服务器由于某种原因不断耗尽内存,当我尝试执行 Jar 时出现以下错误。
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x000000078fb80000, 293601280, 0) failed; error='Cannot allocate memory' (errno=12)
错误不是特定于特定的 jar,它是随机的。
来自服务器的内存(目前我部署了 9 个 jar):-
free -m
total used free shared buff/cache available
Mem: 15630 13684 1835 17 110 1781
有没有人遇到过类似的问题。如果需要任何其他信息,可以提供更多信息。
我们将不胜感激。
这通常发生在 JVM 尝试使用更多内存且可用且 OS 在程序启动后拒绝时。我会尝试减少堆大小,为系统提供更多可用内存。
您几乎没有 buffer/cache 使用过,这让我觉得您的可用内存有时会小于这个大小。 (只是不是当你拿这个样本的时候)
这台机器有多少免费掉期space?
我在执行作业中添加了 java 参数,这似乎解决了问题。
java -Xmx64m -Xss256k -jar abc.jar
在此之后,即使我在同一台服务器上部署了 13 个 jar,我还剩下 10GB 的内存,在我添加参数之前是 1.7GB。
JAVA 参数之前的内存:
free -m
total used free shared buff/cache available
Mem: 15630 13684 1835 17 110 1781
Java 参数后的内存:
free -m
total used free shared buff/cache available
Mem: 15630 4927 8769 25 1932 10373