台湾服务器获取系统性能和状态

作者:港云互联 时间:2019-09-29

        在执行基准测试时,需要尽可能多地收集被测试系统的信息。最好为基准测试建立一个目录,并且每执行一轮测试都创建单独的子目录,将测试结果、配置文件、测试指标。脚本和其他相关说明都保存在其中。即使有些结果不是目前需要的,也应该先保存下来。多余一些数据总比缺乏重要的数据要好,而且多余的数据以后也许会用得着。需要记录的数据包括系统状态和性能指标,诸如CPU使用率.磁盘1/O.网络流量统计. SHOWGLOBAL STATUS计数器等。

台湾服务器

下面是一个收集MySQL测试数据的shell脚本:


#1/bin/sh


INTERVAL=5

PREFIX-SINTERVAL-sec-status

RUNFILE-/home/benchmarks/running

ysq1 -e SHOM GLOBAL VARIABLES》> mysql-variables

while test -e SRUNFILE; do

    file=$(date +%F %I)

    leps(dte +5.N | amk "(print SINTERVAL - (s1 % SINTERVAL)')

    sleep Ssleep

    ts=*$(date +"TS %s.XN%F XT")"

    loadavg= $(uptime)

    echo "Sts Sloadavg”SPREFT-S{ile)-status

    y321 -eSHOM GLOBAL STATUS'”SPREF-i]-sttii &

    echo "sts sloadvg”SREFE-Sf1 inodoatuo

    {f1le)-inn

    nodb

    status &

    ey3q1 -’SHO ENCINE INOOB STATUSC》SEFEF5!f1

    echo "Sts $loadavg"”SPREFTX-5{file)-pcocsiStot-orocesslist &

    mysql -e 'SHON FULL

    PROCESSLISTIG 》SPREFIX-s{file)-processlist &

    echo $ts

node

echo Exiting because SRUNFILE does not exist.


        这个sel脚本很简单,但提供了一个有效的收集状态和性能数据的框架。看起来好像作用不大,但当需要在多个台湾服务器上执行比较复 杂的测试的时候,要回答以下关F系统行为的问题,没有这种脚本的话就会很困难了。下面是这个脚本的一些要点:


(1)迭代是基于固定时间间隔的,每隔s秒运行一次收集的动作,注意这里sle的时间有一个特殊的技巧。如果只是简单地在每次循环时插人一条sleep5" 的指令,循环的执行间隔时间一般都会稍大于5秒, 那么这个脚本就没有办法通过其他脚本和图形简单地捕获时间相关的准确数据。即使有时候循环能够恰好在5秒内完成,但如果某些系统的时间戳是15:32:18.218192, 另外一个则是15:32:23.819437, 这时候就比较讨厌了。当然这里的5秒也可以改成其他的时间间隔,比如1、10、 30或者60秒。不过还是推荐使用5秒或者10秒的间隔来收集数据。



(2)每个文件名都包含了该轮测试开始的日期和小时。如果测试要持续好几天,那么这个文件可能会非常大,有必要的话需要手工将文件移到其他地方,但要分析全部结果的时候要注意从最早的文件开始。如果只需要分析某个时间点的数据,则可以根

据文件名中的日期和小时迅速定位,这比在一个 GB以上的大文件中去搜索要快捷得多。


(3)每次抓取数据都会先记录当前的时间戳,所以可以在文件中搜索某个时间点的数据。也可以写一些awk或者sed脚本来简化操作。


(4)这个脚本不会处理或者过滤收集到的数据。先收集所有的原始数据,然后再基于此做分析和过滤是一个好习惯。如果在收集的时候对数据做了预处理,而后续分析发现一些异常的地方需要用到更多的原始数据,这时候就要“抓瞎”了。


(5)如果需要在测试完成后脚本自动退出,只需要刪除/home/benchmarks/running文件即可。


        这只是一段简单的代码,或许不能满足全部的需求,但却很好地演示了该如何捕获测试的性能和状态数据。从代码可以看出,只捕获了MySQL的部分数据,如果需要,则很容易通过修改脚本添加新的数据捕获。例如,可以通过pt-diskstats工具生捕获/proc/diskstats的数据为后续分析磁盘I/O使用。



新人注册,即送价值满880元现金劵

立即注册>>
客服 电话 反馈 活动 回顶部

服务热线

+852-5764-9835

1对1贴心服务

7*24小时热线