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

宿州做网站内江市网站建设培训

宿州做网站,内江市网站建设培训,互联网保险现状,企业年报申报入口官网前言 平时工作中#xff0c;肯定会遇到哪个产品经理突然来找#xff0c;说服务器又挂了#xff0c;怎么又用不了啦#xff01;类似的紧急情况#xff0c;遇到这种情况不要慌#xff0c;我提供以下几点紧急补救思路。 1#xff09;重启大法保命 2#xff09;确认是否新…前言 平时工作中肯定会遇到哪个产品经理突然来找说服务器又挂了怎么又用不了啦类似的紧急情况遇到这种情况不要慌我提供以下几点紧急补救思路。 1重启大法保命 2确认是否新功能发布线上环境紧急回退版本 3查看服务器实例的CPU使用率、内存使用率arthas 4扩充服务器资源大多数公司上百台微服务每台微服务实例一般资源都设置不大 5开启GC日志分析 xx.hprof文件 总体思路基本围绕上述展开注意OOM不一定是一蹴而就也可能是日积月累慢慢产生。 案例分析 紧急回退版本后分析方向如下 数据一次查询读取量过大之前用Spring Data JPA由于框架缺陷对Query注解先计算条数count才查询sql数据但框架缺陷不会识别别名进而不走分页查了全表数据就必须手动指定countQuery属性依此类推。 代码逻辑无限循环注意是否有递归调用某个方法或者while(true)的情况导致栈溢出定时器调用频率过高注意是不是每分钟执行一次的定时器任务又是大量消耗资源的单个业务任务过大导致不能gc释放资源,有的人一个任务代码写了好几百行查询的数据很多内存无法释放再加上致命的for循环直接就OOM了解决思路解耦放到MQ队列里慢慢消费线程池设置不当因为单个微服务的资源是有限的且都比较小如果不是特别对响应快有要求的话根据实际资源去设置线程池参数或转换思路解耦放到MQ队列里慢慢消费资源不足扩充资源有些时候并不是代码的问题而是服务器运行一段时间后就OOM了这种情况可能是由于业务越来越多服务运行就是需要更多的内存才能满足日常使用当你每隔小业务都需要频繁在新生代创建、销毁、创建、销毁的时候垃圾收集器就会频繁GC而GC可能会STW或者拉高CPU使用率最终导致微服务宕机解决思路扩充内存资源降低GC频率。资源已足够重启大法保命很多时候不是内存设置太小而是由于业务需要内存设置非常大来满足日常需求但是执行到几天后已经会有OOM或则服务器卡顿现象比如很多游戏公司解决思路比如每天凌晨1点服务器维护10分钟其实就是重启服务器。 举例实操 以上就是分析的方向除了刚上线的代码自己知道可能是哪个地方有问题之外其余情况还是要看服务器的GC时的运行情况这使用就要使用一些工具或者看GC日志两个方向以下再举个例子让大家看看我遇到OOM分析时的步骤 查看实时服务器运行情况用到 arthas分析分析GC时日志用到 JProfiler分析 xx…hprof) # Windows安装打开控制台 curl -O https://arthas.aliyun.com/arthas-boot.jar查看实时服务器运行情况(docker 举例 1使用docker stats: 查看docker容器情况现在的服务一般都部署到docker容器中看看正常情况下的cpu使用率、内存使用 2进入docker容器内部docker exec -it 48e /bin/sh 3 top 、free、df经典三件套看看能哪个进程耗资源知道PID号然后等等重点对该进程分析 4使用arthas分析服务器进程查看具体内部情况把前面下载的arthas-boot.jar 复制到docker容器内部 然后执行 java -jar arthas-boot.jar中间会卡顿让你选哪个进程我们选刚刚确定的 PID为7的 敲回车或则1 5) 使用 dashboard 命令查看服务器情况看看内存的平局使用是否超过50%导致频次GC看看GC线程的cpu使用率 看看某一个线程的运行CPU使用率是否需要资源扩容 5使用命令 thread ID号如果内存够用也没有频繁GC可以看看CPU占用搞的线程在执行什么任务 6设置java运行环境内存大小如果确实需要扩容内存了可以调节各种内存阈值 -XX docker inspect 容器IDJAVA_OPTS-Dio.netty.noUnsafetrue -XX:UseG1GC -XX:UseContainerSupport -XX:InitialRAMPercentage60.0 -XX:MinRAMPercentage60.0 -XX:MaxRAMPercentage60.0 -XX:MaxGCPauseMillis100 -XX:MaxMetaspaceSize512m -XX:CompressedClassSpaceSize256m -XX:MetaspaceSize256m -XX:MaxDirectMemorySize256m -XX:InitialCodeCacheSize258m -XX:ReservedCodeCacheSize258m -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath./ -XX:PrintGCDetails -XX:PrintGCTimeStamps -XX:PrintGCDateStamps -Xloggc:./gc.log -XX:PrintHeapAtGC -XX:PrintTenuringDistribution -XX:GCLogFileSize2Marthas分析服务器运行情况的步骤基本就是以上几点也可以通过敲其他分析命令进一步分析到此基本可以确定是不是服务器的内存是不是接近临界值由于业务量增多需要扩容情况 分析GC时日志 1开启GC快照设置设置日志位置最后的会生成 java_pid7.hprof文件 -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath./ //开启日志快照以及快照位置-XX:PrintGC //输出GC日志默认是关闭的 -XX:PrintGCDetails //输出GC的详细日志默认是关闭 -XX:PrintGCTimeStamps //输出GC的时间戳以基准时间的形式 -XX:PrintGCDateStamps // 输出GC的时间戳以日期的形式(类似于2022-04-01T14:21:33.4380800) -XX:UseConcMarkSweepGC //打开此开关参数后使用ParNewCMSSerial Old收集器组合进行垃圾收集。Serial Old作为CMS收集器出现Concurrent Mode Failure的备用垃圾收集器。 -Xloggc:C:\Users\DXH\Desktop\gc.txt//指定将GC日志输出到具体的文件默认为标准输出 2复制docker中的java_pid7.hprof文件 进入docker容器如何设置了HeapDumpPath./ 默认ls就可以看到文件,在docker外面执行cp命令 docker cp 容器ID:./xxx.hprof ./xxx.hprof3使用JProfiler分析工具 4通过查看分析工具的类信息 最大内存信息辅助我们分析代码问题例如看看哪个类最大最大的对象有哪些 5右键查看某个大对象集合的引用情况合并引用进行分析多看看哪个类大了 总结 以上就是思考和分析OOM的可能出现场景和方法顺着这么一套下来基本可以具体时业务激增导致需要服务器扩容还是代码问题导致的栈溢出和内存泄漏。 注意频繁GC是十分消耗服务器性能的大任务就多解耦防止内存剧增OOM不一定是一蹴而就也可能是日积月累慢慢产生。
http://www.sadfv.cn/news/78200/

相关文章:

  • 恩施网站建设教程沈阳百度网站排名
  • 机械网站精选网站制作公司北京网站建设公司
  • html中文美食网站网站被k 如何恢复
  • 永州网站建设如何erp管理系统软件怎么用
  • 攻击网站方法网页设计评价
  • 北京学设计去哪个网站好荣成住房和城乡建设部网站
  • 帝国音乐网站怎么做数据表泗洪做网站
  • 四川住房城乡建设厅网站电话wordpress抓取 ins
  • 中国海洋大学站群网站建设电脑网站上的电影怎么下载
  • 公司网站维护可以做微信游戏的网站
  • 做网站需要什么专业方向的员工平面设计培训素材
  • 官网和网站的区别自己做电影网站有没有钱赚
  • seo站ai时代模版价格
  • 运用django做网站互联网架构师
  • 厦门网站建站公司Wordpress做物联网
  • 商业网站开发入门选课德芙巧克力的软文500字
  • 创建自己的个人网站手机网站建设公司报价
  • 宝安网站建设公司968网站图片一般多大尺寸
  • 网站建设用net后缀如何网站建设的发展
  • 百度云做网站有优势吗seo网络营销工程师
  • 建设银行信用卡提额网站工程造价信息网官网登录
  • 企业网站的劣势百度视频排名优化
  • 网站流量分成众筹网站建设费用
  • 网站的文件夹结构做网站推广前途
  • 做蛋糕视频教学网站淄博网站制作网络定制
  • 网站做支付端口的费用西安搬家公司电话号码大全
  • 怎么搜索网站搜索量自己做网站可以盗图吗
  • 建设电子书阅读网站南阳教育论坛网站建设
  • 一个网站建设多少钱?海口在线分类信息
  • 天津营销型网站建设费用福建建设厅网站 资质