当前位置: 首页 > news >正文

极简wordpress模板seo关键词排名优化是什么

极简wordpress模板,seo关键词排名优化是什么,seo最好的网站,中国网创官方网站目录 1.排查方式2.结论3.解决办法 前言:在生产环境中有一个后端程序多次报oom然后导致程序中断。 1.排查方式 通过下载后端程序产生的oom文件,将oom文件导入MemoryAnalyzer程序分析程序堆内存使用情况。 1、将oom文件导入MemoryAnalyzer后可以看到概览信…

目录

    • 1.排查方式
    • 2.结论
    • 3.解决办法

前言:在生产环境中有一个后端程序多次报oom然后导致程序中断。

1.排查方式

通过下载后端程序产生的oom文件,将oom文件导入MemoryAnalyzer程序分析程序堆内存使用情况。


1、将oom文件导入MemoryAnalyzer后可以看到概览信息界面。总共堆空间是5.6G,【org.hibernate.internal.SessionFactoryImpl @ 0x6c9877ab8】 这个对象占用 128 B 回收后可释放 4.8 GB,接下来看一下这个里面有哪些对象
在这里插入图片描述

2、第二步我们点开泄漏疑点看下分析报告
在这里插入图片描述

3、通过分析报告看到 org.hibernate.internal.SessionFactoryImpl 这个对象引用占用了总内存的 85.53%,总共引用大小是 5,116,381,640 字节,也就是 4.8G的大小。可以看到他引用了 QueryPlanCache 这个对象。

在这里插入图片描述


4、点开左上角第二个图标对象创建直方图,这里可以看到每个类有多少个实例,以及占用的内存。

可以看到这个char占用了很多内存,可以右键 List objects → with incoming references,就可以列出所有的char[]实例,以及每个char[]的整个引用关系链

在这里插入图片描述

通过关系链可以看到char实例都是存储的一些sql语句,点开第一个发现最后被HQLQueryPlan查询计划类引用了

在这里插入图片描述

5、点开左上角第三个图标打开整个堆的支配树,可以看到第一个实例占比达到了 85.53%。

在这里插入图片描述
我们点开这个占比 85.53% 的对象发现都是被 org.hibernate.internal.util.collections.BoundedConcurrentHashMap 这个对象引用了。

往下继续点开发现基本都是查询语句,发现每个查询语句都是一样的,就是后面in的参数不同,继续点开其他的发现都是这个语句

select count(generatedAlias0) from BizReportCatalogAttach as generatedAlias0 where generatedAlias0.bizTableFillId in (:param0_0, :param0_1, :param0_2, .... , :param0_68)

在这里插入图片描述

点开这个sql语句的参数发现 in 里面有3万多个参数,其他的SQL语句都是一样,就是 in 的参数不一样所以被缓存起来了

在这里插入图片描述


2.结论

至此,可以判断是被 Hibernate QueryPlanCache 查询计划JPQL缓存导致的问题。里面的SQL每次执行时随着in的参数不同导致Hibernate重复缓存SQL

hibernate会缓存sql语句以减少重复编译,便于直接命中提高效率。这个缓存默认QueryPlanCache的map entry默认容量上限是2048,且在使用in时,只要in后面的参数有任何一个不一样的,就会视为不同的语句而保存下来。


3.解决办法

通过配置Hibernate缓存sql语句的最大个数配置来限制缓存个数

在application.properties中添加如下配置

#指定Hibernate查询计划缓存sql语句的最大个数, 默认2048, 详见org.hibernate.engine.query.spi.QueryPlanCache
spring.jpa.properties.hibernate.query.plan_cache_max_size=64
#指定Hibernate查询计划参数元数据缓存的最大大小, 管理缓存中ParameterMetadata实例的数量(默认为128), 详见org.hibernate.engine.query.spi.QueryPlanCache
spring.jpa.properties.hibernate.query.plan_parameter_metadata_max_size=32

如果hibernate 5.2.17+时,还可以添加此配置以减少IN子句的SQL计划缓存。
参考文档:https://docs.jboss.org/hibernate/orm/5.6/userguide/html_single/Hibernate_User_Guide.html

#Hibernate可以根据参数格式的几何算法进行生成缓存,例如生成2个参数、4个参数、2^2个参数的SQL,从而优化IN子句的使用,减少不必要的SQL计划缓存,避免因大量使用IN查询而导致内存溢出的问题‌
spring.jpa.properties.hibernate.query.in_clause_parameter_padding=true

添加配置后通过debug启动可以在这里打断点看下我们的配置是否生效,我们在这里能看到上面很熟悉的三个身影:SessionFactoryImplementor、QueryPlanCache、BoundedConcurrentHashMap 这三个类,SessionFactoryImplementor 的引用占用了85.53%的堆空间

在这里插入图片描述

http://www.yayakq.cn/news/844549/

相关文章:

  • 云南网站seo外包网站网站怎么做的
  • 网站定制营销免费网站空间怎么办
  • 几度设计网站网站和网页的设计方法
  • 做网站必须租服务器吗西宁网站公司
  • 房产网站的全景图怎么做网络环境搭建
  • 申请免费网站公司自己建网站做app
  • 如果评价网站做的好不好seo网站推广服务
  • 自适应网站建设价格做网站所用的语言
  • 建立官方网站源码网站建设
  • 做网站外包工作怎么样网站建设的软件有哪些
  • 个人免费开发网站wordpress使用密码错误
  • 科普网站建设的支持力度请简述网络营销的特点
  • 温州中豪网站建设推广网商网站怎么做
  • 网站建设源码包网站建设的布局对网络推广的影响
  • 北京快三下载官方网站做电销有什么资料网站
  • 现在还做响应式网站吗样式表一般用于大型网站
  • vs用户登录注册网站建设代码tomcat做公司网站
  • 淄博建网站哪家好网站建设延期通知单
  • 怎么自己在电脑上做网站荆楚网
  • 建设银行租房网站wordpress页面采集
  • 网站的需求分析包括哪些餐饮网站设计
  • 3网合一网站wordpress下单邮件通知
  • 网站建设需要内容网站电话素材
  • 网站开发人员考核指标在阿里巴巴上做网站需要什么软件
  • 方微商城网站开发网站建设是虚拟行业吗
  • 购买模板建站食品经营许可证
  • 中小型网站建设与管理 唐军民wordpress下载样式
  • 百度一下建设银行网站首页背景图片
  • 校园网站建设的请示中国建设工程信息网官网清欠
  • 嘉兴模板建站系统深圳营销推广引流公司