疯狂GC的第二种处理方式-ChatGPT的学习之四


摘要

上一个脚本太复杂了.
而且要改启动脚本.
课间休息跟人扯淡聊起来 chatGPT 发现他的语法很有用
但是思路不太对. 不过突然根据文档里写的想到了一个新的思路.

获取GC信息

while true
date >> /zhaobsh/gcutil
jstat -gcutil `jps |grep caf |awk '{print $1}' |head -n 1 ` 1000 1 >> /zhaobsh/gcutil
done

获取最近一次的 FullGC的次数

timenow=$(cat /zhaobsh/gcutil |grep FGCT -A 1|grep -v FGCT |awk '{print $9}' |grep -v '^$'  |tail -n 60  |tail -n 1)

获取距离现在一分钟时的FullGC的次数

timebefore=$(cat /zhaobsh/gcutil |grep FGCT -A 1|grep -v FGCT |awk '{print $9}' |grep -v '^$'  |tail -n 60  |head -n 1)

获取差值就可以

gctime=$(($timenow - $timebefore)
echo $gctime

判断处理

如果 gctime > 1
说明最后一分钟有两次以上的FullGC的. 可以执行重启操作. 整体脚本好像也挺复杂的...

整体脚本

while true
do
timenow=$(cat /zhaobsh/gcutil |grep FGCT -A 1|grep -v FGCT |awk '{print $9}' |grep -v '^$' |tail -n 60 |tail -n 1)
timebefore=$(cat /zhaobsh/gcutil |grep FGCT -A 1|grep -v FGCT |awk '{print $9}' |grep -v '^$' |tail -n 60 |head -n 1) timenow=${timenow:-0}
timebefore=${timebefore:-0}
echo $timenow
echo "如果数值为0 请重新进行获取gcutil"
gctime=$(($timenow - $timebefore))
echo "本次范围内的GC次数为:"
echo $gctime
if [ $gctime -gt 1 ]
then
echo "执行关闭服务的脚本, 并且将gc信息置空, 可以进行一下备份"
echo " " > /zhaobsh/gcutil
sleep 10
echo "重启服务"
fi
sleep 60
echo "停顿一分钟进行检查"
done

疯狂GC的第二种处理方式-ChatGPT的学习之四的更多相关文章

  1. 使用Typescript重构axios(十九)——请求取消功能:实现第二种使用方式

    0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...

  2. python_并发编程——多进程的第二种启动方式

    1.多进程的第二种启动方式 import os from multiprocessing import Process # 创建一个自定义类,继承Process类 class MyProcess(Pr ...

  3. WEB安全实战(五)XSS 攻击的第二种解决方式(推荐)

    序 说到 XSS 攻击,前边已经有两篇文章在讲这个事了,这次又拿出来说,主要是针对近期工作中的一些新的问题.那么之前是怎么解决问题的呢?为什么又要换解决方式?以下就具体的跟大家分享一下. 旧方案 公司 ...

  4. ANDROID_MARS学习笔记_S02_008_ANIMATION第二种使用方式:xml

    一.简介 二.代码1.res\anim下的xml(1)alpha.xml.xml <?xml version="1.0" encoding="utf-8" ...

  5. 基于Metronic的Bootstrap开发框架经验总结(11)--页面菜单的几种呈现方式

    在常规的后台管理系统或者前端界面中,一般都有一个导航菜单提供给用户,方便选择所需的内容.基于Metronic的Bootstrap开发框架,是整合了Metroinc样式,以及Boostrap组件模块的内 ...

  6. 使用Kylin构建企业大数据分析平台的4种部署方式

    本篇博客重点介绍如何使用Kylin来构建大数据分析平台.根据官网介绍,其实部署Kylin非常简单,称为非侵入式安装,也就是不需要去修改已有的 Hadoop大数据平台.你只需要根据的环境下载适合的Kyl ...

  7. Spring IOC 三种注入方式

    1.    接口注入 2.    setter注入 3.    构造器注入 对象与对象之间的关系可以简单的理解为对象之间的依赖关系:A类需要B类的一个实例来进行某些操作,比如在A类的方法中需要调用B类 ...

  8. Hadoop 学习笔记 (八) hadoop2.2.0 测试环境部署 及两种启动方式

    1基本流程步骤1:准备硬件(linux操作系统)步骤2:准备软件安装包,并安装基础软件(主要是JDK)步骤3:修改配置文件步骤4:分发hadoop步骤5:启动服务步骤6:验证是否启动成功!2硬件配置要 ...

  9. spring框架总结(03)重点介绍(Spring框架的第二种核心掌握)

    1.Spring的AOP编程 什么是AOP?  ----- 在软件行业AOP为Aspect Oriented Programming  也就是面向切面编程,使用AOP编程的好处就是:在不修改源代码的情 ...

  10. js this详解,事件的三种绑定方式

    this,当前触发事件的标签 在绑定事件中的三种用法: a. 直接HTML中的标签里绑定 onclick="fun1()"; b. 先获取Dom对象,然后利用dom对象在js里绑定 ...

随机推荐

  1. Java使用OSS实现上传文件

    阿里云OSS使用 1.准备OSS 访问阿里云官网,注册并登录账户(支付宝方便一些,顺便冲点钱) 在产品分类中,找到阿里云oss 然后创建一个bucket 2.使用OSS(上传文件) 2.1在阿里云网站 ...

  2. 开发小技巧 - 合理使用Visual Studio 2022内置任务列表(TODO)

    前言 在开发编码过程中经常会因为各种问题而打断自己的思绪和开发计划,可能会导致本来准备开发或者需要测试的功能到要上线的时候才想起来没有做完.这种情况相信很多同学都遇到过,咱们强大的Visual Stu ...

  3. 密码加密处理MD5与Salt

    作用:一般用来加密或者签名(校验和) 特点: MD5算法不可逆如何内容相同无论执行多少次md5生成结果始终是一致 生成结果:始终是一个16进制32位长度字符串 //使用MD5 + salt +hash ...

  4. 【API进阶之路】太秃然了,老板要我一周内检测并导入一万个小时的视频

    摘要:假期结束后回来上班,走进电梯都有一种特别的感觉,电梯那个植发广告里的大哥看我的眼神好像和之前不太一样- 上回说到,老板奖励7天带薪假,我就回家玩耍了几天,顺便还帮兄弟发不脱当了一回"A ...

  5. 推理实践丨如何使用MindStudio进行Pytorch模型离线推理

    摘要:本教程所示例的任务是Ascend Pytorch离线推理,即对给定的已经训练好的模型参数和推理脚本,在Ascend 310/710和Tesla设备上进行推理应用. 本文分享自华为云社区<使 ...

  6. 多智能体协同控制研究中光学动作捕捉与UWB定位技术比较

    人类在进行任何工作时,总是强调团队合作,teamwork.随着控制科学.计算机科学等多学科的交叉发展与融合,在智能体控制领域,对于单个机器人,无人机,无人车的控制已经不能满足现在领域的技术需求,从而和 ...

  7. 【PS算法理论探讨三】 Photoshop中图层样式之 颜色叠加/渐变叠加/图案叠加 算法原理初探讨。

    这三个表面上看上去很简单,我们就先描述简单的部分. 颜色叠加:这个和编辑菜单下的填充 颜色 基本是一个意思,相当于在原有的图层上部添加了一个纯实色的虚拟图层,选项里的不透明度和混合模式和普通的概念是一 ...

  8. 【Go】go语言变量类型 常量 函数基础 函数高级 setuptools将python项目打包 前后端联调

    昨日回顾 使用setuptools将python项目打包 # 详细: python---->setuptools-->whl包结构 https://zhuanlan.zhihu.com/p ...

  9. CPI 访问需验证的HTTP接口

    CPI访问外围系统接口时,有时需要先访问验证接口,获取AccessToken或得到账密,然后访问具体接口时,将获取到的验证结果传入具体接口进行访问 1.OAuth2.0 AccessToken方式 1 ...

  10. StringBuilder 线程不安全,到底哪里不安全?

    StringBuilder 线程不安全,到底哪里不安全? 在Java中,字符串拼接是一个非常常见的操作,而对于频繁变动的字符串内容,使用StringBuilder是一个性能优化的选择.但是,Strin ...