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 |
声明 欢迎转载,但请保留文章原始出处:) 博客园:https://www.cnblogs.com/chenxiaomeng/
如出现转载未声明 将追究法律责任~谢谢合作
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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工具