我有一个运行Solaris 10的服务器,它报告70+ GiB空闲内存。我试图在64位模式下使用Java 1.7.0_80启动Tomcat 7.0.68。
服务器声称它无法分配717 MiB的内存。每次尝试时,我都会得到一个hs_err_pidxxx.log文件。它提出如下建议:
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 717225984 bytes for committ
我正在Windows8.1 64位上用JDK8u2064bit开发带有4GBRAM的java swing应用程序。
问题是当我使用Netbeans profiler和Monitor选项启动应用程序时。
加载第一个Jframe时,应用程序内存堆在18 is 附近,JVM进程大小在50 is (image1)附近。
然后,当我启动包含带有JFxPanel的webView的另一个Jframe时,堆跳转到45 is ,jumps跳转到700 is非常快(image2),这非常令人困惑。然后,当我关闭第二个JFrame时,它被释放,一个System.gc()被调用,JVM执行GC (在大多数情况下),堆
我不知道如何使用奥多的工人。我有一个带有ubuntu16.04的服务器安装程序。nginx已经安装并在工作。
我的服务器将运行两个数据库。它安装了16 it内存。这将被使用不超过10个用户。
Sever Cpu specs are
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
C
我有一个Jetty服务器,用于我正在开发的应用程序的websocket连接。唯一的问题是Jetty消耗了太多的虚拟内存(!2.5 of的虚拟内存)和大约650RES。
我的问题是,如上所述,大多数内存(大约12 of )不是堆大小,因此分析它并理解发生了什么变得更加困难。
关于如何理解12 Do的消耗以及如何找出内存泄漏或服务器的任何其他问题,您有什么建议吗?
我想证明我所说的虚拟内存是什么意思(因为我的理解可能是错误的)。当我运行top时,虚拟内存是"VIRT“。下面是我得到的结果:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIM