Shell测试性能相关脚本

  利用传递参数的形式对当前的内容进行测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/bin/sh
Interval=5
A=1000
Free=`cat /proc/meminfo|grep "MemFree" | awk '{print $2}'`
if [ ! -f "pidconf" ]      
then
    echo "FILE pidconf NOT FOUND!"
    exit
fi
if [ ! -f "result" ]     #不存在result这个file就touch一个
then
    touch result
fi
if [ ! -d "pidbak" ]     #如果不存在pidbak这个目录directory就创建pidbak这个目录
then
   mkdir pidbak
fi
mv pidfile/* pidbak      
while [ 1 ]
do
echo "`date`" >> result
while read line
do
if [ ! -f "pidfile/$line" ]
then
touch pidfile/$line
old=`pgrep $line`
new=$old
echo "$old" > pidfile/$line
else
old=`cat pidfile/$line`
new=`pgrep $line`
if [ $? != 0 ]
then
new="NULL"
fi
fi
if [ ${old} != ${new} ]
then
echo "===ERROR===[$line] pid change, [$old=>$new]" >> result
echo "$new" > pidfile/$line
else
echo "==SUCCESS==[$line=$new]" >> result
fi
done < pidconf
 
 
sleep 10
Free1=`cat /proc/meminfo|grep "MemFree" | awk '{print $2}'`
T=`expr $Free - $Free1`
if [ $T -le $A ]
then
echo "========memory normal======" >> result
else
echo "========memory leak========" >> result
fi
if [ $# != 1 ];then
    echo "wrong parameter!"
    exit 1
fi
checktime=$1
check=1
allcpu=0
maxcpu=0
mincpu=100
while [ $check -le $checktime ]
do
    docpu=`cpu -c 1`
    cucpu=`echo $docpu | cut -b 11-14 | cut -d \% -f 1`
    if [ $cucpu -gt $maxcpu ];then
        maxcpu=$cucpu
    fi
    if [ $cucpu -lt $mincpu ];then
        mincpu=$cucpu
    fi
    allcpu=`expr $allcpu + $cucpu`
    avcpu=`expr $allcpu / $check`
    echo "Average:$avcpu%  Now:$docpu"
    check=`expr $check + 1`
done
echo "MAX CPU: $maxcpu%  MIN CPU: $mincpu%" >> result
echo "" >> result
sleep $Interval
done

  

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/bin/sh
echo "Read Config..."
while read line;
do
    eval "$line"
done < perfConf
cat perfConf
echo "Read Config Successfully!"
echo "Ip Test..."
if [ $Protocol == "UDP" ]
then
    iperf -c $Ip -u -t 1 > connectData 2>&1
else
    iperf -c $Ip -t 1 > connectData 2>&1
fi
if [[ `grep -c "failed" connectData` -eq "1" ]]
then
    echo "ERROR:iperf server can not connect"
    exit 0
    fi
    echo "Ip Test Successfully!"
    function rand()
{
    min=$1
    max=$(($2-$min+1))
   #num=$(tr -cd 1-9 < /dev/urandom 1 | head -c 10)
    num=$(tr -cd 1-9 < /proc/sys/kernel/random/uuid 1 | head -c 10)
    echo $(($num%$max+$min))
}
 
if [[ $Mode == "Auto" ]]
then
    myloop=1
    echo "Begin to Auto Test..."
    echo ""
    while [ $myloop -le $Loop ]
    do
    echo "==="`date`"==="
        echo "===NO."$myloop" Loop==="
        if [[ $Protocol == "UDP" ]]
        then
            len=$(rand $Start_Len $End_Len)
            bd=$(rand $Start_Bandwidth $End_Bandwidth)"K"
            echo "iperf -c "$Ip" -t "$CircleTime" -u -b "$bd" -l "$len" -p "$Port" -i "$Interval
                iperf -c $Ip -t $CircleTime -u -b $bd -l $len -p $Port -i $Interval
        else
            echo "iperf -c "$Ip" -t "$CircleTime" -i "$Interval" -p "$Port
            iperf -c $Ip -t $CircleTime -i $Interval -p $Port
        fi
        let myloop=myloop+1
        echo "=============================="
        echo ""
        sleep $SleepTime
    done
    else
    echo "Begin to Passive Test..."
    if [[ $Protocol == "UDP" ]]
    then
        iperf -c $Ip -t $Time -u -b $Bandwidth -i $Interval
    else
    iperf -c $Ip -t $Time  -i $Interval
    fi
fi

  

 

posted @   陈晓猛  阅读(371)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示