通常情况有数据库连接未释放,每个用户的数据加载在内存中太多,这个看下相关的代码。还有log日志

解决方案 »

  1.   

    貌似系统都会这样,用着用着就涨上去了,前期暴涨是因为很多东西需要首次加载吧。
    我那个自己的VPS隔三差五的还得重启一遍。。
    代码中注意点回收就行了,当然即使代码没问题,还是会涨的
      

  2.   

    用jmap导出内存映像文件,然后用mat工具可以看到内存里的对象是什么东西
      

  3.   

    如果数据库连接未释放,最终的结果肯定是无法拿到新的连接,最终系统会崩掉。看你的现象没有出现系统宕掉的情况。
    但是6G的内存确实太多了,建议用工具查看下内存里面的情况,是否有大对象一直持有没有gc。
      

  4.   

    你去看一下这个程序  数据库连接 是怎么做的不会是JDBC  每个人自己随意写的吧。
    我以前带过一个小孩 这个哥们 居然在while 循环里给我开数据源   还不给关闭。弄的 我们的那个系统   要死了
      

  5.   

    这不是linux,不能直接查看多少数据库连接状态。只能手动检查代码中数据库启用后是否关闭。
      

  6.   

    请问LZ,tomcat容器的容量没有限制的吗?
      

  7.   

    能说得详细点吗,我目前用jmap导出内存映像文件,然后用mat工具可以看到内存里的对象,但是具体不知道是要看什么东东
      

  8.   

    tomcat容量?什么意思啊
    假如说你查询的数据过多,容器不会报outMemery异常吗?
      

  9.   

    visualvm 用 这个工具看看 JVM中你的项目类方法的变化
    找到那个方法进行优化。
      

  10.   

    tomcat容量?什么意思啊
    假如说你查询的数据过多,容器不会报outMemery异常吗?
    没有报错
      

  11.   

    tomcat容量?什么意思啊
    假如说你查询的数据过多,容器不会报outMemery异常吗?
    没有报错
    我最近就碰到这样的问题,数据超过一定量,容器就out了,你是怎么解决的?
      

  12.   

    tomcat容量?什么意思啊
    假如说你查询的数据过多,容器不会报outMemery异常吗?
    没有报错
    我最近就碰到这样的问题,数据超过一定量,容器就out了,你是怎么解决的?
    还没解决呢,我们这的tomcat还没到挂掉那一步,还在慢慢查了,每天乱七八糟的事情一大堆,只能有空的时候查查
      

  13.   

    用用工具分析下吧,jprofiler这个不错。
      

  14.   

    也有可能是tomcat与jdk GC不及时导致的问题。
    之前项目使用tomcat6.13,jdk5.18,性能测试的时候就会出现内存释放不及时的问题。后来jdk换成6以上运行,就好多了。老系统,毕竟就百八十人用,可以做个定时任务,夜深人静的时候,偷偷重启下好了。
      

  15.   

    查看一下是不是有很多数据缓存起来了,放在Map等集合里面了。修改代码,释放一些不必要的或者是非热点的数据,或者直接改使用Redis,memcached作为缓存。
      

  16.   

    出现这种情况十有八九就是内存对象没有及时的回收或内存对象因为交X引用无法回收,JVM自已的内存GC周期又设置的太长.对于软件开发说,应该很明确在一个系统中哪些需要缓存,哪些不需要缓存,对程序员来说要任何地方都要注意主动释放不再会用到的内存对象,这种问题光靠系统管理者是没法根本解决问题的
      

  17.   

    用监控工具看哪些对象占用大内存,然后优化对应的类,jmap和jvisualvm都可以看