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

江阴网站开发电商网站设计与制作论文

江阴网站开发,电商网站设计与制作论文,一般的网站需要多大的空间,怎样打死网站目录 1.排查方式2.结论3.解决办法 前言#xff1a;在生产环境中有一个后端程序多次报oom然后导致程序中断。 1.排查方式 通过下载后端程序产生的oom文件#xff0c;将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_size64 #指定Hibernate查询计划参数元数据缓存的最大大小, 管理缓存中ParameterMetadata实例的数量(默认为128), 详见org.hibernate.engine.query.spi.QueryPlanCache spring.jpa.properties.hibernate.query.plan_parameter_metadata_max_size32如果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_paddingtrue添加配置后通过debug启动可以在这里打断点看下我们的配置是否生效我们在这里能看到上面很熟悉的三个身影SessionFactoryImplementor、QueryPlanCache、BoundedConcurrentHashMap 这三个类SessionFactoryImplementor 的引用占用了85.53%的堆空间
http://www.hkea.cn/news/14295924/

相关文章:

  • 浙江大学教室办事大厅网站建设企业网站推广论述
  • 如何招聘软件网站开发人员贵阳网站优化排名
  • 天津企业网站排名优化wordpress设置权限777
  • 邯郸网站设计公司排名怎样做音视频宣传网站
  • 网站开发技术指标wordpress 访客记录
  • 烟台网站建设设计展厅布置摆放设计公司
  • 网站规划的主要任务是什么wordpress建站好么
  • 工业品企业网站源码长沙推广型网站建设
  • 江西网站开发科技公司免费托管wordpress
  • 广西建设教育学会网站wordpress 用户发帖
  • fedora做网站服务器WordPress 采集文章 图片
  • 临清网站开发双语网站建设
  • 网站制作合同河北专业网站建设公司推荐
  • 给自己的网站做代言图文广告加盟哪家好
  • 广东广东网站建设工作wordpress 地区插件
  • 道客网站建设推广上海网站建设哪家技术好
  • ui设计的发展趋势无线网络优化工程师
  • 做网站建设怎么样电商推广平台
  • 网站开发 确认函宁波外贸公司有哪些
  • 网站开发行业推广平谷网站建设
  • 建立网站怎么搞怎么进行网站设计和改版
  • 网站注册账号怎么做代写平台
  • 免费招聘网站推荐wordpress get_term_link
  • 设计网站最重要的是要有良好的黑龙江省高速公路建设局网站
  • 做的好的外贸网站wordpress转程序
  • 网站窗口建设wordpress顶部通知栏
  • 有自己的网站做淘宝联盟号做吗网站分页js
  • 河池网站建设和文化有关的吉网站建设模板
  • 营销网站建设规划概念appcms程序怎么做网站
  • 永康网站建设服务dedecms_v5.6室内装饰设计公司企业网站模板.rar