gpt4 book ai didi

java - CPU使用率峰值玩框架java mysql

转载 作者:行者123 更新时间:2023-11-30 05:22:04 25 4
gpt4 key购买 nike

后端应用程序是在play框架中开发的。连接到 2 个不同的数据库 mysql 和 oracle。

2 到 3 小时后,CPU 消耗飙升至 100%。

我无法找到同一问题的确切根本原因,因为该问题是在部署 6 个月后出现的。但是在 Windows 事件查看器中我发现 MYsql 出现以下错误

WindowsEventViewer 日志

Aborted connection 472 to db: 'mydb' user: 'root' host: 'localhost' (Got an error writing communication packets)For more information, see Help and Support Center at http://www.mysql.com.

在mysql的WINSERVER.err中发现日志

2019-12-18T05:07:35.110436Z 472 [Note] Aborted connection 472 to db: 'mydb' user: 'root' host: 'localhost' (Got an error writing communication packets)

我在应用程序启动时创建一个数据库连接,该连接在整个应用程序中使用。

我的数据库配置

db.mydb.hikaricp.minimumIdle=2 db.mydb.hikaricp.maximumPoolSize=4 db.mydb.hikaricp.idleTimeout=600000 #### 10 mins db.mydb.hikaricp.maxLifetime=1800000 #### 30 mins db.mydb.hikaricp.cachePrepStmts=true db.mydb.hikaricp.prepStmtCacheSize=250 db.mydb.hikaricp.prepStmtCacheSqlLimit=2048 db.mydb.hikaricp.useServerPrepStmts=true db.mydb.hikaricp.useLocalSessionState=true db.mydb.hikaricp.rewriteBatchedStatements=true db.mydb.hikaricp.cacheResultSetMetadata=true db.mydb.hikaricp.cacheServerConfiguration=true db.mydb.hikaricp.elideSetAutoCommits=true db.mydb.hikaricp.maintainTimeStats=false

最佳答案

我认为您存在内存泄漏。

是的,我知道,这不是一个好消息:您的应用程序创建了无法删除的对象,因为被其他对象引用,因此堆已满,垃圾收集器开始更频繁地运行,但没有成功删除任何内容...如此之高GC Activity 通常会对 CPU 使用率产生负面影响。

论文验证

您可以使用多种方法来测试内存使用情况,这些方法根据问题是否发生而有所不同。

问题还在继续

如果您可以通过 ssh 访问生产环境,则可以运行以下命令(以 super 用户身份):

jstat -gc <pid java> 15000 10

获得这样的东西:

enter image description here

通过这种方式,您可以在垃圾收集器 Activity 的最后 15 秒内采集 10 个样本;如果 FGC(从 jvm 启动开始的 Full Garage Collection 事件的数量)频率为每秒 1 次或类似的情况,则说明存在内存泄漏!请记住,通常对于 10 个 YGC(年轻垃圾收集:gc 的轻量级版本)运行,您只有 1 个 FGC(该数字仅供引用)。

或者,如果您可以在生产环境中拥有堆监视器(VisualVM 或类似工具)

在这种情况下,您可以得到如下图:

enter image description here

您可以进行堆转储并分析它以验证最新的对象。

问题尚未发生

同样,使用堆监视器 (VisualVM),您可以使用应用程序一段时间,然后强制运行完整垃圾收集器并验证您自己的对象(应用程序的对象)的数量是否显着减少或归零在每个段落。

关于java - CPU使用率峰值玩框架java mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59386099/

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