疯狂GC的第二种处理方式-ChatGPT的学习之四
疯狂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的学习之四的更多相关文章
- 使用Typescript重构axios(十九)——请求取消功能:实现第二种使用方式
0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...
- python_并发编程——多进程的第二种启动方式
1.多进程的第二种启动方式 import os from multiprocessing import Process # 创建一个自定义类,继承Process类 class MyProcess(Pr ...
- WEB安全实战(五)XSS 攻击的第二种解决方式(推荐)
序 说到 XSS 攻击,前边已经有两篇文章在讲这个事了,这次又拿出来说,主要是针对近期工作中的一些新的问题.那么之前是怎么解决问题的呢?为什么又要换解决方式?以下就具体的跟大家分享一下. 旧方案 公司 ...
- ANDROID_MARS学习笔记_S02_008_ANIMATION第二种使用方式:xml
一.简介 二.代码1.res\anim下的xml(1)alpha.xml.xml <?xml version="1.0" encoding="utf-8" ...
- 基于Metronic的Bootstrap开发框架经验总结(11)--页面菜单的几种呈现方式
在常规的后台管理系统或者前端界面中,一般都有一个导航菜单提供给用户,方便选择所需的内容.基于Metronic的Bootstrap开发框架,是整合了Metroinc样式,以及Boostrap组件模块的内 ...
- 使用Kylin构建企业大数据分析平台的4种部署方式
本篇博客重点介绍如何使用Kylin来构建大数据分析平台.根据官网介绍,其实部署Kylin非常简单,称为非侵入式安装,也就是不需要去修改已有的 Hadoop大数据平台.你只需要根据的环境下载适合的Kyl ...
- Spring IOC 三种注入方式
1. 接口注入 2. setter注入 3. 构造器注入 对象与对象之间的关系可以简单的理解为对象之间的依赖关系:A类需要B类的一个实例来进行某些操作,比如在A类的方法中需要调用B类 ...
- Hadoop 学习笔记 (八) hadoop2.2.0 测试环境部署 及两种启动方式
1基本流程步骤1:准备硬件(linux操作系统)步骤2:准备软件安装包,并安装基础软件(主要是JDK)步骤3:修改配置文件步骤4:分发hadoop步骤5:启动服务步骤6:验证是否启动成功!2硬件配置要 ...
- spring框架总结(03)重点介绍(Spring框架的第二种核心掌握)
1.Spring的AOP编程 什么是AOP? ----- 在软件行业AOP为Aspect Oriented Programming 也就是面向切面编程,使用AOP编程的好处就是:在不修改源代码的情 ...
- js this详解,事件的三种绑定方式
this,当前触发事件的标签 在绑定事件中的三种用法: a. 直接HTML中的标签里绑定 onclick="fun1()"; b. 先获取Dom对象,然后利用dom对象在js里绑定 ...
随机推荐
- 如何实现gif格式图片倒放效果?
不知道大家看电影的时候有没有发现出现过这样的一个神奇场景: 一个子弹竟然从远处飞回到手枪中,整个场景呈现一种时空倒流的感觉? 正文 先来几个有趣的倒放动图娱乐一下~ 猫:我谢谢你们全家 萌娃快乐针 尊 ...
- vue音频(监听播放完成)
<template> <div> <audio ref="audio" :src="audioSrc"></audio ...
- Java编程中忽略这些细节,Bug肯定找上你
摘要:在Java语言的日常编程中,也存在着容易被忽略的细节,这些细节可能会导致程序出现各种Bug. 本文分享自华为云社区<Java编程中容易忽略的细节总结丨[奔跑吧!JAVA]>,作者:j ...
- 一起玩转LiteOS组件:Pixman
摘要:本文将以Pixman Demo为例,详细说明Pixman的功能. 本文分享自华为云社区<LiteOS组件尝鲜-玩转Pixman>,作者:Lionlace. 基本介绍 Pixman是由 ...
- C# 跳过值班时间代码逻辑
/// <summary> /// 当前时间是否是值班时间 /// </summary> private bool IsDutyTime { get { var dutyTim ...
- Java Sprintboot jar 项目启动、停止脚本
将 vipsoft-gateway-1.0.0 替换成自己的包名 start-gateway-dev.sh nohup java -Duser.timezone=GMT+08 -Dfile.encod ...
- three.js 火焰效果
代码是网上找的代码,通过调参.修改.封装实现的. 代码: /** * 火焰 */ import * as THREE from '../build/three.module.js'; let MyFi ...
- 20级训练赛Round #4
给20级学弟学妹们带带榜单 A - 凯少的动作序列 枚举情况替换即可 #include <bits/stdc++.h> using namespace std; using ll = lo ...
- Codeforces Round #679 (Div. 2, based on Technocup 2021 Elimination Round 1) (个人题解)
1434A. Finding Sasuke // Author : RioTian // Time : 20/10/25 #include <bits/stdc++.h> using na ...
- 0x05 基本算法-排序
A题:Cinema 经典离散化例题,把电影的语言与字幕和观众懂的语言放进一个数组,然后离散化. 最后统计快乐人数. const int N = 200006; int n, m, a[N], x[N] ...