压力测试过程中,采集服务器性能数据

本文介绍了如何结合Python脚本和Linux命令行工具,如sar和iostat,来采集服务器在压力测试过程中的性能数据。脚本主要包含性能数据的初步采集、指标提取和数据打包。通过配置文件(如abstractConf_ch.xml和abstractConf_en.xml)指定原始文件路径,并使用cat、egrep、awk等命令提取所需信息。同时,文中提到正在转向使用Python的psutil模块来更高效地收集服务器性能数据。
摘要由CSDN通过智能技术生成

通过python脚本与linux命令结合的方式采集服务器性能数据。根据测试过程中服务器当前的tcp链接数量来决定数据采集是否结束。
脚本主要有三个操作,第一个是性能数据初步采集,通过调用linux的sar和iostat命令,将数据写入原始文件中。采集完成后,执行性能指标提取脚本,从原始指标文件提取有效的数据写入最终的文件中,并进行打包操作。
代码只是本人满足工作所需而作,算不上很好,可以满足工作所需,仅此而已

从原始文件提取数据的配置文件,根据服务器语言类型区分:
abstractConf_ch.xml—中文
abstractConf_en.xml—英文
配置文件主要是指明原始文件路径并按照需求使用linux的cat、egrep、awk命令从文件中提取数据

<?xml version='1.0' encoding='utf-8'?>
<abstract>
    <res_file name="res/CPU">
        <uniqflag>CPU</uniqflag>
        <object_file>result/cpu_status</object_file>
        <graphtitle>Cpu_Status</graphtitle>
        <linelabel>%user %system</linelabel>
        <x_y_label>Time(s) Cpu_Percent(%)</x_y_label>
        <cmd>cat %s | egrep -v "Linux|^$|%s" | awk 'BEGIN {print "%s\n%s\n%s"}{if($2 !~/AM|PM/) print $3,$5}' >> %s</cmd>
    </res_file>
    ...............
    ...............
</abstract>

获取服务连接数量

# coding:utf-8
#__author__ = 'Libiao'

import subprocess

class GetLinkingNumber(object):
    def __init__(self):
        pass

    def getLinkingNumber(serlf,servers):
        ret = []
        if isinstance(servers,str):
            num = subprocess.Popen("netstat -tnap | grep tcp | grep %s | wc -l" %servers,stdout=subprocess.PIPE,shell=True).stdout
            ret.append(int(num.readline().strip()))
        elif isinstance(servers,dict):
            for k,v in servers.items():
                num = subprocess.Popen("netstat -tnap | grep tcp | grep %s | wc -l" %v,stdout=subprocess.PIPE,shell=True).stdout
                ret.append(int(num.readline().strip()))
        else:
            pass
        return ret

需要由主程序执行的linux命令

#!/bin/bash

sar -n DEV 10 >>res/NetWork &
iostat -x -d -k 10 >>res/Disk &
sar -r 10 >>res/Memory &
sar -q 10 >>res/System_load_average &
sar -u 10 >>res/CPU &
sar -b 10 >>res/TPS &

数据采集代码主方法

#-*- coding:utf-8 -*-

"""
reated on 2015年10月16日

@author: LiBiao
"""

import time,os
import subprocess
import multiprocessing
from write_log import writeL
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值