gpt4 book ai didi

java - 系统如何显示tomcat内存?

转载 作者:太空宇宙 更新时间:2023-11-04 11:57:11 28 4
gpt4 key购买 nike

我在一个大约有 8GB 的​​虚拟机上给了我的 tomcat 大约 3Gb 的内存,-Xms3072M -Xmx3072M -Xmn1024M。

在我启动 tomcat 并在终端中输入之后

"ps -eo pmem,vsize,pid,cmd | sort -k 1 -nr | head -10"

我得到的第一个也是唯一一个 java 进程的答案是 19.4%(19.4 7052620 12748/usr/bin/java...)我的问题是这 19.4% 是多少,是没有堆的 tomcat 的 ram 内存吗?这是我在网上找到的等式:

最大内存 = [-Xmx] + [-XX:MaxPermSize] + number_of_threads * [-Xss] ( https://plumbr.io/blog/memory-leaks/why-does-my-java-process-consume-more-memory-than-xmx )

因为 8GB 的​​ 19.4% 是 2GB,而我的堆是 3GB。这是没有堆的 ram 内存吗?

最佳答案

你没有命名你的操作系统,虽然很明显它是一个 *NIX 类型的操作系统。

ps 显示的内存是实际分配的内存。它将包括已分配给您的进程的所有“ native ”、堆和 mmaped 内存。如果您的进程非常年轻(即运行时间不长),那么它还不会使用太多的堆。

许多操作系统,尤其是 Linux,将允许 malloc to return success即使实际没有分配物理内存。由于 JVM 在启动时立即分配您的 -Xms 设置,您可能希望进程的内存大小至少 3072MiB,但如果该内存实际上不是正在使用,那么 ps 可能会显示比您预期的更小的尺寸。

如果您确实在使用 Linux,请查看 https://serverfault.com/questions/48582并在网上搜索一下 Linux 内核是如何分配内存的。此外,如果您正在使用 Linux,请考虑将 linux 标记添加到您的问题中。

如果您使用 Linux,您可能想了解您的操作系统如何分配内存。如果您的操作系统使用“过度使用”策略,那么它的行为将如上所述。

关于java - 系统如何显示tomcat内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53854418/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com