如果有人经历过这种情况或有任何想法,将不胜感激......
我直奔主题:有问题的系统使用 java6、tomcat6 和 ibatis
自从将数据库从Mysql5.1升级到Mysql5.5后,系统变得不稳定。查看 jmap histo 并使用 jhat 分析内存转储后,很明显问题与应用程序的 JDBC 端有关。
系统平均每秒执行 3,000 次选择/插入/更新,并且它一天中最繁忙的时间是 Prepared Statement 实例计数在 10 到 30 之间。我们在正常操作期间看到的最高计数刚刚超过 50。
奇怪的是,崩溃没有规律可循,系统在一小时内多次崩溃,而其他时候崩溃之间可能会经过几天。
崩溃期间观察到的最高实例数超过 500 万。
这是来自其中一个内存转储的 JDBC4PreparedStatement 的一些 jhat 数据 此转储是在我们开始崩溃时进行的(此时只有 200k 实例)