以下脚本写于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='' nohup dstat -t --mysql5-cmds --mysql5-io --mysql5-keys $@ -df --disk-util --disk --mem --proc --top-cpu --top-latency --top-bio --io --sys --filesystem --tcp --vm --output $filenameOfDstat &
nohup pidstat -p $pidMysqld -u -d -w -h > $filenameOfPidstat &
nohup mpstat -P ALL > $filenameOfMpstat &
nohup iotop -p $pidMysqld -n -d > $filenameOfIOtop &
nohup iostat -dxk > $filenameOfIostat &
#nohup sar -o $filenameOfSar & #nohup free > $filenameOfFree &
#nohup cat /proc/meminfo > $filenameOfMemInfo &
#nohup uptime > $filenameOfUptime & # in every day at april ,run the shell script at min past each hour.
# * * * /root/shift_my_times.sh # * * * /home/pset/performanceLog/collectLog.sh crontab设置成每小时启动,并依照脚本中设定的频率采集数据:
,,- * * /home/pset/performanceLog/collectLogs.sh
* * * * /usr/local/bin/mycheckpoint --user=root --password= --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

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

  1. 红帽linux系统开机自启动脚本。

    其实很多东西在最后完成以后会觉得也就那样,有意思的是探究的过程. 前段时间老板要求把一个程序做成linux系统开机自启动脚本的模式. 首先你需要写一个脚本. 我这边建立了一个.sh的脚本,就是用脚本启 ...

  2. shell脚本监控Linux系统性能指标

    2016-11-04 22:41 原作者不详 分类: Linux(7) 在服务器运维过程中,经常需要对服务器的各种资源进行监控, 例如:CPU的负载监控,磁盘的使用率监控,进程数目监控等等,以在系统出 ...

  3. linux系统带宽监测脚本

    服务器可能经常遇到服务器出带宽跑满,不知如何查询被哪个进程占用的情况,有一款开源的英文软件iftop功能比较强大可以查询相关信息,可能刚接触linux系统的朋友不太会使用,在此写了一个功能比较简单无需 ...

  4. linux系统初始化——启动脚本是如何工作的

    启动脚本是如何工作的 Linux 使用的是基于 运行级(run-levels) 概念的称为 SysVinit 的专用启动工具.它在不同的系统上可能是完全不一样的,所以不能认为一个脚本在某个 Linux ...

  5. 关于linux系统安全配置脚本

    本脚本是第二次更新,已经大量应用在某大型媒体网站体系中,加入了之前没有想到的一些安全设置.使用方法将其复制,保存为一个shell文件,比如security.sh.将其上传到Linux服务器上,执行sh ...

  6. linux系统执行mysql脚本:Can't connect to local MySQL server through socket '/tmp/mysql.sock'

    问题原因:系统找不到临时文件夹下的.sock文件了 解决办法:看一下是不是其他目录下有mysl的.sock文件,使用命令指定到该文件 mysql --socket=/home/mysql/mysql- ...

  7. linux 系统性能指标

    一.查看CPU使用情况 cpu使用率反映的是当前cpu的繁忙程度,忽高忽低的原因在于占用cpu处理时间的进程可能处于io等待状态但却还未释放进入wait. 平均负载(loadaverage)是指某段时 ...

  8. 监控linux系统的简易脚本

    我先把脚本粘贴在这吧,方便大家观看,其中也是借鉴了不少其他大神的东西,这个脚本主要是用来监控服务器.用户.日志,还得创建备份,等等等等.最近学的shell比较多,就用这个来练练手了,比较简单,大家凑合 ...

  9. Linux 系统监控shell脚本

    比较粗略的一个脚本:主要监控系统磁盘.CPU.内存.网络流量.tcp连接数等 代码如下: [root@test system_monitor_shell_script]# cat system_mon ...

随机推荐

  1. 【状压dp】【bitset】bzoj1688 [Usaco2005 Open]Disease Manangement 疾病管理

    vs(i)表示患i这种疾病的牛的集合. f(S)表示S集合的病被多少头牛患了. 枚举不在S中的疾病i,把除了i和S之外的所有病的牛集合记作St. f(S|i)=max{f(S)+((St|vs(i)) ...

  2. MySQL之CAST与CONVERT 函数的用法

    两者具体的语法如下:CAST(value as type); CONVERT(value, type); 可以转换的类型是有限制的.这个类型可以是以下值其中的一个: 二进制,同带binary前缀的效果 ...

  3. nodejs: 理解Buffer

    学习nodejs中buffer这一章,有一段写到buffer的拼接,其中一段源码非常优美,特拿来与大家共享. var chunks = []; var size = 0; res.on('data', ...

  4. html + css (1)

    a{ text-decoration:none; /* 规定添加到文本的修饰;下划线没有了 */ margin:0px; font-size:15px; display: block; /* 以块级元 ...

  5. Eclipse4.6(Neon) + Tomcat8 + MAVEN3.3.9 + SVN项目完整环境搭建

    软件清单 jdk-8u102-windows-x64.exe eclipse-inst-win64.exe (Eclipse4.6 Neon) apache-tomcat-8.5.5-windows- ...

  6. C3P0连接池异常

    解决方案: 将c3p0.jar包换成c3p0-0.9.0.2.jar,c3p0这个包应该有bug 引用如下: com.mchange.v2.log.MLog Determines which libr ...

  7. Asp.Net Web API 2第十五课——Model Validation(模型验证)

    前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本文参考链接文章地址htt ...

  8. 使用 Aspose.Slide 获取PPT中的所有幻灯片的标题

    本文使用的是第三方类库 Aspose.Slide,如果你使用的是OpenXml可以看下面的链接,原理是相同的,这个文章里也有对Xml标签的详细解释. 如何:获取演示文稿中的所有幻灯片的标题 原理: 原 ...

  9. 转载:开发者眼中最好的 22 款 GUI 测试工具

    对于很多同学来说gui程序的测试是一个难点,所以我从网上转载了一篇关于gui测试的一篇文章,里面罗列的很多工具,大家可以尝试一下学习学习. 英文原文:22 best GUI testing tools ...

  10. [BTS] WCF-SAP adapter

    =================================== Exception has been thrown by the target of an invocation. (mscor ...