当前位置: 首页 > 知识库问答 >
问题:

Tomcat进程占用所有CPU和大量虚拟内存

周和安
2023-03-14

Top显示tomcat使用少量常驻内存但大量虚拟内存,有没有办法给它更多常驻内存?我已经尝试用-Xmx2gJAVA_OPTS,但常驻内存仍然浮动在250毫克左右

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                            
28669 tomcat    20   0 9763m 297m 6224 S 704.4  0.6   1306:25 java        

共有1个答案

娄弘
2023-03-14

指定内存分配池最大大小的正确命令行开关为-Xmx

像这样的东西应该适合你:-Xmx2gJAVA_OPTS

**在为JVM分配非常高的内存时要小心,因为它有时会导致问题。

对于您的情况,我建议您在Tomcat进程中启用远程JMX,然后一旦进程显示异常高的CPU/内存使用率,请连接JMX客户端,例如jConsole或VisualVM,看看是否有任何死锁或运行时间很长的线程。

 类似资料:
  • 问题内容: 我有一小段代码每隔五分钟拍摄一次我的桌面的屏幕截图。但是,我对它占用的内存量有些困惑-通常它会爬升到200mb RAM,我敢肯定这是多余的…谁能告诉我a)减少内存占用空间的明智方法或b)它为什么涨 可言 ? 问题答案: 其他答案是正确的:Java将使用允许的尽可能多的内存,这时它将进行垃圾回收。要解决此问题,可以在JVM设置中指定较小的最大堆大小。您可以使用- Xmx设置来执行此操作。

  • 本文向大家介绍记一次tomcat进程cpu占用过高的问题排查记录,包括了记一次tomcat进程cpu占用过高的问题排查记录的使用技巧和注意事项,需要的朋友参考一下 本文主要记录一次tomcat进程,因TCP连接过多导致CPU占用过高的问题排查记录。 问题描述 linux系统下,一个tomcat web服务的cpu占用率非常高,top显示结果超过200%。请求无法响应。反复重启依然同一个现象。 问题

  • 由于全局解释器锁的存在,python3的多线程是伪并行的。 现在看进程。如果一个CPU仅仅有4个核,我在设置pool的时候,设置Pool(5),此时,有5个并行的进程在同时运行,这个说法不对吧,任何时刻,由于CPU的束缚,仅仅只可以有4个进程并行。 我的理解对吧?

  • PS:有时我会从java代码执行shell脚本。会不会导致这类问题?

  • 主要内容:虚拟内存如何工作?,按需分页,虚拟内存管理系统的快照虚拟内存是一种存储方案,为用户提供了一个拥有非常大的主内存的幻觉。 这是通过将辅助存储器的一部分作为主存储器来完成的。 在这种方案中,用户可以加载比可用主存更大的进程,因为存在内存可用于加载进程的错觉。 操作系统不是在主内存中加载一个大进程,而是在主内存中加载多个进程的不同部分。 通过这样做,多程序的程度将会增加,因此CPU利用率也会增加。 虚拟内存如何工作? 在现代语言中,虚拟内存近来变得非常普

  • 为什么我的java PID占用更多内存。目前我有24GB ram和max-xmx=15G。所以java PID的解决方案是占用更少的内存。 23794 root 0 22.2g 16.5g 13416 s 100.070.42980:54上面的java是我的最高命令结果。任何人都知道如何重新关注这个问题。