监控多实例tomcat的cpu使用率

需求:

监控top命今令下,tomcat的进程%cpu时间占比超过80%时候 kill掉进程,再重启对应该的tomcat,并且记录一下重启的tomcat,还有重启时间的日志

#!/bin/bash

#打印tomcatID号
#tomcatid=`ps -ef |grep tomcat|grep -w ‘tomcat‘ |grep -v grep|awk ‘{print $2}‘`
tomcatid=`jps |grep Bootstrap|awk ‘{print $1}‘`
DATETIME=`(date ‘+%F %H:%M:%S‘)`  #获取单前时间
LOG=/tmp/tomcat.log  #日志文件
if [ ! -n "$tomcatid" ];then
    echo "Please start tomcat." #判断pid是否为空
else

   for i in $tomcatid;do

    tomcatdir=` ps aux|grep $i |awk ‘{for (i=1;i<NF;i++) if($i ~ /Dcatalina\.home/) print $i}‘|awk -F ‘=‘ ‘{print $2}‘|head -1` #获取tomcat的catalina home路径
     if [ "$i" ];then
        echo "The Tomcat is Starting. PID: $i. TomcatDir:$tomcatdir"
#通过pid判断tomcat是否启动;已启动判断cpu
        cpu=`top -bn1 |grep "$i" | awk ‘{print $9}‘|cut -d "." -f1`
          if [ $cpu -lt 80 ];then
             kill -9 "$i"
             sleep 3
            "$tomcatdir/bin/startup.sh"
             echo  "The Tomcat Pid : $i   Restart Tomcat Time $DATETIME" >> $LOG

           fi

      fi
   done
fi
~
时间: 2024-08-27 21:06:48

监控多实例tomcat的cpu使用率的相关文章

Zabbix利用JMX监控多实例Tomcat运行状态

自使用Zabbix监控系统以来,一直想用JMX来监控Tomcat,但是一直都没配置成功,总有一些问题,监控端的报错又很抽象,搜索网上大都是复制粘贴之产物,或者是缺斤短两之网文,但是一直都没放弃,至今终于配置成功,并且成功获取数据,形成图形,现在把自己解决问题的过程和配置的一些心得整理成文. 环境介绍: Centos 6.5 Zabbix 2.2.15 Tomcat 7.0.68 监控JMX配置步骤 1.在zabbix服务器上安装配置zabbix-java-gateway,并且配置相关参数. 2.

Zabbix监控DB,Tomcat

因项目需要,Zabbix要监控SQL server的连接数,MySQL以及tomcat,下面是对监控上述item的简要介绍. 1. SQL server连接数 1.1 SQL server连接数 1. SQL Server查询当前连接数 2. Sql Server当前并发连接数的查看方法 3. 亲测SQLServer的最大连接数 4. SQL SERVER用户数.连接数.连接池License SELECT * FROM [Master].[dbo].[SYSPROCESSES] WHERE [D

SQLServer2008-2012资源及性能监控—CPU使用率监控详解

 本文接着上文继续,讲述如何监控CPU的使用情况 前言: CPU是服务器中最重要的资源.在数据库服务器中,CPU的使用情况应该时刻监控以便SQLServer一直处于最佳状态. 本文将会使用可靠性和性能监视器来获取CPU相关的使用统计信息 可靠性和性能监视器是过去性能监视器工具的加强版.同时拥有性能监视器的全部功能. 性能计数器提供对各种系统活动的统计功能.可以找到有数百种性能计数器来针对Windows操作系统或者第三方应用程序的性能.SQLServer同样有数百个性能计数器供DBA使用. 在

zabbix自动发现与监控内存和CPU使用率最高的进程

监控需求 某项目的应用服务器CPU和内存使用率的监控,通过zabbix系统监控记录应用服务器上进程的CPU和内存的使用情况,并以图表的形式实时展现,以便于我们分析服务器的性能瓶颈. 监控方式 利用zabbix监控系统的自动发现功能,首先编写shell脚本获取服务器的CPU和内存资源使用率最大的进程,以json的格式输出,然后对这些进程的CPU和内存资源使用情况进行监控.(本文监控的进程为Linux服务器中资源使用率最高的10个进程.) 缺点 不适用于监控固定的进程 首先使用top命令查看进程状态

如何使用JVisualVM远程监控和优化Tomcat和Java程序的内存和CPU

如何使用VisualVM远程监控和优化Tomcat和Java程序的内存和CPU JVisualVM 是Java 继 JConsole 之后有一款力作,是集成了诸多分析和优化Java程序的工具的工具. 我们可以用它来为优化Java程序的内存占用,找出内存泄漏,分析Java程序的CPU占用情况,根据JVisualVM获取到的数据优化JVM配置等.   总之是相当好了~~~~ JVisualVM 位于JAVA_HOME/bin目录下 . 直接运行可打开. 打开后界面如下: 由于JVisualVM 本身

Zabbix3.0.4监控Windows的CPU使用百分比并在CPU使用率超过90%触发报警

Zabbix3.0.4监控Windows的CPU使用百分比 Zabbix 自带的模块没有 CPU 使用率(百分比)这个监控项,我们可以通过添加计数器的方式实现 CPU 百分比的监控. 1.在Zabbix 的 WEB 端进行模板配置添加 CPU 百分比监控项目 *. 配置–模块–选择对应的模板–项目–创建项目 名称:CPU 百分比键值:perf_counter[\Processor(_Total)\% Processor Time]数据类型:数字的(浮点)单位:%数据更新间隔(秒):30应用集:C

zabbix监控单核cpu使用率和多核cpu总负载

zabbix自带的基础监控的模板中只有对单核cpu负载1分钟.5分钟.15分钟的监控. 添加对总的cpu负载的监控 key:system.cpu.load[all,avg1] 1分钟cpu总的负载 添加对单cpu使用率的监控 (1)创建探索规则: (2)宏: (3)项目原型:

操作系统性能监控-CPU使用率

CPU使用率分为 用户态CPU使用率:执行应用程序代码的时间占总CPU时间的百分比 系统态CPU使用率:应用执行操作系统调用的时间占总CPU时间的百分比 系统态CPU使用率高意味着共享资源有竞争或者IO设备之间有大量的交互. 目标:理想情况应用达到最高性能和扩展性时,它的系统态CPU使用率为0%,提供应用性能和扩展性一个目标是尽可能降低系统态CPU使用率   对于计算密集型应用 监控用户态和系统态CPU使用率 监控每时钟指令书IPC或每指令时钟周期CPI(对于计算密集型重要,系统自带工具无法监控

Zabbix通过SNMP监控多核CPU使用率时, 计算CPU平均使用率

环境:没有Agent,只能通过SNMP监控时,需要获取多核CPU的平均使用率. ZABBIX的使用SNMP监控CPU使用率时,由于设备都是多核CPU,监控的都是单独某一核心的使用率,但单独某一核使用率过高触发告警实际意义不大. 所以写了一个"外部检查"查询CPU的每个核心的使用率,然后再计算该设备CPU的总体的一个使用率. cd /usr/local/share/zabbix/externalscripts/ vim /usr/local/share/zabbix/externalsc