linux 系統效能指標取樣指令碼

2021-09-08 10:55:50 字數 3210 閱讀 5171

以下指令碼寫於redmine效能排查時,用於定位系統效能瓶頸的取樣,源位址為~/performancelog/collectlog.sh中,計畫放入github的**片段庫中.

注: 如果mysql的位址或者目錄更換,此指令碼中dstat 的mysql相關資料的採集需要重寫其外掛程式的mysql連線部分的**。 注: 如果mysql的位址或者目錄有更換,又想使用以下指令碼採集資料,需要重寫其mysql連線部分的**,才能讓指令碼中dstat 的mysql相關資料的採集正常獲取。

#!/bin/bash

cd /home/pset/performancelog/#create

dirfor

today

today=`date

"+%y%m%d"`

if [ ! -d $today ]; then

mkdir

$today;

ficd $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

idwhich we are intrested in

.: mysqld ruby.bin

pidmysqld=`ps -e| grep mysqld.bin|awk

'nr==1 '`

pidruby=`ps -e| grep ruby.bin|awk

'nr==1 '`

export dstat_mysql_user='

root

'export dstat_mysql_pwd='

1111

'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 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設定成每小時啟動,並依照指令碼中設定的頻率採集資料:

10,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的指標資訊

系統效能指標

概念吞吐量 指在單位時間內系統處理的請求數,吞吐量是判斷乙個系統處理能力的常用指標 tps 每秒通過的事務數。事務 不是對頁面的一次操作,而是定義的乙個行為。eg 事務開始 登入 url 登入 事務結束 登入成功 概念指系統對請求作出響應的時間,現實中不同功能響應時間不盡相同,甚至同一功能在不同輸入...

通訊系統效能指標

1 資料傳輸速率 越高有效性越好 單位時間傳送的資料量 2 吞吐量 throughout 單位時間內通訊系統接收傳送的位元數,位元組數或幀數 3 頻帶利用率 單位頻帶內的傳輸速度,單位為 bit s hz,即每赫茲寬頻所能實現的位元率 4 協議效率 指所傳輸的資料報中,有效資料位與整個資料報長度的比...

Web系統效能優化系列 Web系統效能指標

效能評估是進行系統設計以及系統優化的重要事項,進行正確地效能評估才能有效地規劃系統容量,保證系統地穩定執行。在效能評估過程中常見的效能指標有以下幾種 tpstransactions per second,每秒傳輸的事務處理個數,即伺服器每秒處理的事務數量。tps是系統效能的乙個重要指標。系統整體處理...