疯狂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里绑定 ...
随机推荐
- 限制左键拖拽图片阴影vue
<template> <div> <img ref="image" :src="imageUrl" :style="im ...
- react+echarts出现“There is a chart instance already initialized on the dom.”
写了一个关于echatrs组件,报错dom重复 配置信息从props拿 let chart; useEffect(() => { if (chart) { updateChartView(); ...
- 云图说|华为云CodeArts Build,云端化的编译构建平台
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 本文分享自华为云社区&l ...
- 电商运营该如何做 AB 测试
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近年,电商行业进入了一个新的发展阶段,一方面电商市场规模持续扩大,另一方面直播电商.即时零售.社区团购等新兴电商业 ...
- JS 判断域名并跳转到指定页面
判断访问指定域名,进行页面跳转 <!DOCTYPE html> <html> <head> <title>正在玩命加载中--</title> ...
- Jenkins Blue Ocean
介绍 Blue Ocean 是 pipeline 的可视化UI.同时兼容经典的自由模式的 job.Jenkins Pipeline 从头开始设计,但仍与自由式作业兼容,Blue Ocean 减少了经典 ...
- Spring Boot Admin 自定义健康检查
添加自定义类: /** * 监控接口的健康情况 * */ @Component public class ApiHealthIndicator implements HealthIndicator { ...
- 注册中心/配置管理 —— SpringCloud Consul
Consul 概述 Consul 是一个可以提供服务发现,健康检查,多数据中心,key/Value 存储的分布式服务框架,用于实现分布式系统的发现与配置.Cousul 使用 Go 语言实现,因此天然具 ...
- C99标准前后对于二维数组的动态声明问题
html: toc: true 写在前面: 出于作者不了解C99以前标准中对二维数组的动态声明而导致的一场考场事故,作者写下这篇文章,,以便其他同学在遇到类似问题时不要犯同样的错误,同时作为对自己的警 ...
- 用Python自动清理系统垃圾,再也不用360安全卫士了
用Python自动清理系统垃圾,再也不用360安全卫士了 在Windows在安装和使用过程中都会产生相当多的垃圾文件,包括临时文件(如:.tmp.._mp)日志文件(.log).临时帮助文件(.gid ...