linux 系统性能指标采样脚本

以下脚本写于redmine性能排查时,用于定位系统性能瓶颈的采样,源地址为~/performanceLog/collectLog.sh中,计划放入github的代码片段库中.

注: 如果mysql的地址或者目录更换,此脚本中dstat 的mysql相关数据的采集需要重写其插件的mysql连接部分的代码。 注: 如果mysql的地址或者目录有更换,又想使用以下脚本采集数据,需要重写其mysql连接部分的代码,才能让脚本中dstat 的mysql相关数据的采集正常获取。

#!/bin/bash
cd /home/pset/performanceLog/

#create dir for today
today=`date "+%Y%m%d"`

if [ ! -d $today ]; then
mkdir $today;
fi

cd $today

#declare var to remember current hour.
hour=`date "+%H"`

echo "current hour is: "$hour

postfix="_nohup.log"

filenameOfDstat=$hour"_"$today"_dstat"$postfix".csv"
echo $filenameOfDstat

filenameOfIostat=$hour"_"$today"_iostat"$postfix
echo $filenameOfIostat

filenameOfPidstat=$hour"_"$today"_pidstat"$postfix
echo $filenameOfPidstat

filenameOfFree=$hour"_"$today"_free"$postfix
echo $filenameOfFree

filenameOfMemInfo=$hour"_"$today"_meminfo"$postfix
echo $filenameOfMemInfo

filenameOfUptime=$hour"_"$today"_Uptime"$postfix
echo $filenameOfUptime

filenameOfMpstat=$hour"_"$today"_mpstat"$postfix
echo $filenameOfMpstat

filenameOfIOtop=$hour"_"$today"_iotop"$postfix
echo $filenameOfIOtop

filenameOfSar=$hour"_"$today"_sar"$postfix
echo $filenameOfSar

#the process id which we are intrested in.: mysqld ruby.bin
pidMysqld=`ps -e| grep mysqld.bin|awk ‘NR==1 {print $1}‘`
pidRuby=`ps -e| grep ruby.bin|awk ‘NR==1 {print $1}‘`

export DSTAT_MYSQL_USER=‘root‘
export DSTAT_MYSQL_PWD=‘1111‘

nohup dstat -t --mysql5-cmds --mysql5-io --mysql5-keys [email protected] -df --disk-util --disk --mem --proc --top-cpu --top-latency --top-bio --io --sys --filesystem --tcp --vm --output $filenameOfDstat 1 3600 &
nohup pidstat -p $pidMysqld -u -d -w -h 2 1800 > $filenameOfPidstat &
nohup mpstat -P ALL 2 1800 > $filenameOfMpstat &
nohup iotop -p $pidMysqld -n 1800 -d 2 > $filenameOfIOtop &
nohup iostat -dxk 2 1800 > $filenameOfIostat &
#nohup sar -o $filenameOfSar 2 1800 &

#nohup free > $filenameOfFree &
#nohup cat /proc/meminfo > $filenameOfMemInfo &
#nohup uptime > $filenameOfUptime &

# in every day at april ,run the shell script at 1 min past each hour.
#1 * * 4 * /root/shift_my_times.sh

#1 * * 4 * /home/pset/performanceLog/collectLog.sh

crontab设置成每小时启动,并依照脚本中设定的频率采集数据:
1 0,4,10-23 * 4 * /home/pset/performanceLog/collectLogs.sh
* * * 4 * /usr/local/bin/mycheckpoint --user=root --password=1111 --socket=/redmine/mysql/tmp/mysql.sock --database=mycheckpoint

产生此方案的关键系统指标展示:
pidstat:可以针对特定的进程,比如:mysql 或者其它进程
mpstat:用于查看高峰时段某些cpu的idle是否异常。
dstat io:用于记录每次采集的时间点,并统筹全局的cpu  mem  io  net  mysql的指标信息

相关页面: http://www.cnblogs.com/ToDoToTry/p/4462609.html

时间: 2024-07-30 03:03:10

linux 系统性能指标采样脚本的相关文章

Linux系统备份还原脚本

\ #!/bin/sh #备份linux系统. #命令如:sh 当前脚本.sh /dev/sdax 备份文件名 #参数1:备份的盘,备份前先umount.如:/dev/sda1 #参数2:备份保存的文件名. if [ $# -ne 2 ]; then echo "请传入两个参数." exit 0 fi #当前日期,用于建立临时文件夹和备份文件. datename=`date +%Y%m%d_%H%M%S` #临时挂载的文件夹名称 tmpdir="/tmp/dir${daten

linux系统带宽监测脚本

服务器可能经常遇到服务器出带宽跑满,不知如何查询被哪个进程占用的情况,有一款开源的英文软件iftop功能比较强大可以查询相关信息,可能刚接触linux系统的朋友不太会使用,在此写了一个功能比较简单无需安装的带宽查看脚本,可以查询linux服务器当前带宽使用量,有需要的朋友可以试试  快速使用方法  1.下载脚本 ssh登录服务器后输入:  英文版: wget http://jinxiang.oss-cn-hangzhou.aliyuncs.com/vmnetcheck.sh  中文版: gbk版

Linux系统批量配置脚本

系统批量配置脚本使用手册 使用要求 linux操作系统(RHEL,kylin,凝思磐石均可用) 本地计算机expect命令可用 ssh.scp命令可用 脚本组成及功能说明 引导脚本 - config.sh 该脚本会引导整个脚本组合的执行,提示用户输入远程计算机IP地址(范围)及root密码. 系统配置脚本 - sysinfo-collect.sh 该脚本中可以自行定制需要在远程计算机上执行的命令,配合引导脚本及响应脚本使用,可以完成的任务有: 在远程计算机批量执行命令: 修改远程计算机配置文件:

linux系统初始化配置脚本分享

这个脚本是我借鉴某大神的脚本改写的(其实是赤裸裸的拿来用了),功能主要是实现系统自定义配置,搭建原始的linux环境模板,分享给大家,顺便分享个小诀窍: 复制代码后,请使用"notepad++"或其它编辑器打开此文档, "alt+0"将函数折叠后方便查阅 . 插句话,这个方法我是从雪松大神的[python实例手册] [shell实例手册]学到的,感谢他们的共享精神,一直在维护这两个手册的更新,  分享下着两个手册的地址: [python实例手册] [shell实例手

linux系统监控shell脚本

代码如下,实现了Linux系统的一些常见的监控变量,分享给大家@.·[email protected] #=============================# #Filename=system_monitor.sh #Author:foxsir #Date:2016-02-15 #=============================# #!/bin/sh clear if [[ $# -eq 0 ]] then #Define Variable Reset_terminal Res

Linux系统性能指标监控

实时监控-网络监控: netstat ->  netstat 命令用于显示本机网络链接,运行端口.路由表等信息 netstat 参数说明: -n: 拒绝显示别名,能显示数字的全部转化成数字 -l: 仅列出有在Listen(监听)的服务状态 -p:显示建立相关链接的程序名 -t:显示tcp相关的选项 -u :仅显示udp相关的选项 -i:显示自动匹配接口的信息 -c:每隔一个固定时间,执行该netstat命令 常用: [email protected]:~# netstat -ntlp     (

linux系统安全巡检脚本

1 #!/bin/bash 2 3 #name: safe_check.sh 4 #Author: lipc 5 #Date: 2019-11-30 6 #Version: 1.0 7 #Notes: 此脚本用来做系统的安全巡检 8 9 read key 10 11 echo "警告:本脚本只是一个检查的操作,未对服务器做任何修改,管理员可以根据此报告进行相应的设置." 12 13 14 echo ---------------------------------------主机安全检

监控linux系统的简易脚本

我先把脚本粘贴在这吧,方便大家观看,其中也是借鉴了不少其他大神的东西,这个脚本主要是用来监控服务器.用户.日志,还得创建备份,等等等等.最近学的shell比较多,就用这个来练练手了,比较简单,大家凑合看吧. #! /bin/bash 10 # unset any variable which system may be using 11 12 # clear the screen 13 clear 14 15 unset tecreset os architecture kernelreleas

关于linux系统安全配置脚本

本脚本是第二次更新,已经大量应用在某大型媒体网站体系中,加入了之前没有想到的一些安全设置.使用方法将其复制,保存为一个shell文件,比如security.sh.将其上传到Linux服务器上,执行sh security.sh,就可以使用该脚本了!建议根据自己的实际需要来修改此脚本,不要盲目使用! #!/bin/sh # desc: setup linux system security # author:coralzd # powered by www.freebsdsystem.org # v