学习笔记--业务场景和linux核心组件监控

业务场景提取:

*提取的要点:核心业务,高频业务

*场景:

1、登录

2、秒杀:登录-列出-获取商品信息-秒杀-退出

*只开发脚本

*场景运行:

1、基准场景:单个用户的(单用户场景)

2、单场景:单个接口

3、混合场景(多场景):接口可能没有关系

4、比例场景

*场景要素(测试报告):

1、对应接口的脚本

2、用户数要求

3、热备时间(对应启动时间jmeter中的ramp-up)

4、持续时间

5、逻辑关系

场景举例:

    *订单场景操作流程:

1、用户访问登录—每一个用户一次

2、列出商品列表—秒杀接口

3、退出登录

    *性能场景指标

1、验证最大并发用户数—(负载测试逻辑)

2、错误率<0.5%

3、请求响应时间<3s

4、高并发

5、服务器资源使用合理:

    Cpu使用率<70%

    内存使用率<70%

补充点:登录接口加密

1、加密方式有:对称加密、非对称加密、hash加密(MD5加密)

2、项目中遇到接口加密是定制化加密的处理方法:

1)开发可以提供加密方法—加密流程:随机数+时间戳

    解决方法使用前置处理器beanshell—java编写代码

2)开发不提供加密方法—要求给出对应的Jar或class文件

    解决方法解决方法使用前置处理器beanshell—java编写代码调用对应的jar方法,获取加密的结果,写在一个变量里,后面登录接口中使用这个变量

导入jar包并使用jar包中的方法,例如导入md5方法

Source("D:\\testJar.jar”);

Import MD5fun;

MD5fun test = new MD5fun();

String res = test.getMD5String("Zhang123456”);

Log.info("MD5———>"+res);

Vars.put(“psw”,res);

   

补充点:监控方案

*自带监控—阿里云/华为云

    》PTS--技术解决方案—运行jmx—监控-分析-收费

*第三方监控方案:

    》granfana+promethues

    》宝塔

    》nmon

*linux监控命令:

linux核心组件:cpu、内存、磁盘、网络、进程

Linux查看cpu的常用命令:

1、查看cpu静态配置信息:cat /proc/cpuinfo

2、查看cpu的统计信息:lscpu

3、uptime

  Load average(平均负载)就是一段时间(1分钟、5分钟、15分钟)内的平均负载。

看趋势时从右到左,即15分钟》5分钟》1分钟》,这个数字是递增还是递减。数字代表着一段时间内正在使用和等待使用cpu的平均进程数1,1核处理一个进程,其它多余的进程需要wait。

模拟cpu使用率要求达到100%场景

准备:安装好软件包,打开3个终端

>yum install -y epel-release

>yum install -y sysstat

>yum install -y stress

终端1:模拟一个cpu使用率100%的场景,使4核cpu爆满

   > stress -c 4 --timeout 300

终端2:查看平均负载的变化情况,-d参数表示高亮显示变化的区域

   > watch -d uptime

终端3: 

    *-P ALL 表示监控所有cpu,后面数字5表示间隔5秒后输出一组数据

    >mpstatl -P ALL 5

    *间隔5秒输出一组数据,主要看cup需要等待处理的百分比

    >pidstat -u 5 1   

    注意:安装pidstat过程

1、将sysstat放到一个目录下,例如opt

2、yum install gcc

3、cd /opt/sysstat

4、chmod a+x configure

案例分析讲解

*场景描述:cpu是4core环境,cpu达到99%,平均负载20

分析:

    1、每个cpu都已经满载符合在运行—性能指标的标准<80%

    2、4核cpu平均负载<=4,实际是20

解决:

    找到对应的cpu使用率比较高的进程、进而找到线程、配置、或者数据库查询语句等等

linux下常用查看内存的命令集:top+free+vmstat+sar

补充小知识:

1)内存的寻址时间比磁盘io寻址快100倍至10万倍

2)内存访问速度是纳秒级(10的-9次方),硬盘的访问数速度是微秒级的(10的-3次方)

3)cat /proc/meminfo 查看内存情况

命令free

total :总计物理内存的大小

used:已使用多大

free:    可用有多少

shared: 多个进程共享的内存总额

buffers/cached:磁盘缓存的大小

available:

所有空闲内存=free+buffer+cached=total-used

两个进程之间还可以通过共享内存进行进程间通信

补充知识点:

Kb和KB区别:

B--byte字节

b—bit 位

B=8b

K—kilo 千 

Kbps:ps指“每秒”。Kbps指的是网络速度,也就是每秒钟传送多少个千位的信息,一般电信运营商都用Kb(千位)来表示网络的传输速度。

KBps:表示每秒传送多少千字节。换算的方式:1KBps=8Kbps。如果ADSL上网的网速是512Kbps,那么转换速度成字节就是512/8=64KBps。

补充知识点:swap

    swap是虚拟内存,当系统的内存不够用的,会使用这个虚拟的内存(磁盘空间)。

分析:

*如果这个swap—说明内存已经不够用

*si :so:--swap-in ,swap-out —这2个指标越大说明内存越不足

场景:

*在k8s集群里每一台服务器都会禁用swap内存

*k8s—自动扩容的特点

Linux下常用的磁盘指令集:

iotop+dd+iostat+sar+dstat+fio

读写速度:机械硬盘>100M/s,固态硬盘>500M/s

Linux下常用的网络指令集:

netstat+ping+tcping+iperf

Ifconfig,ethtool

netstat命令

场景:RT响应时间很慢的时候

分析:

首先分排除网络,要求在局域网内测试,不能在公网内测试

补充点:

*公司内网测试:公司机房机器与公司内部测试,有时需要路由添加网络延时,即加上行

*阿里云环境:项目搭建在阿里云:

    》公网IP:本机去压测阿里云—使用公网时,不准确,受其它用户的的影响

    〉内网IP:去申请对应的阿里云的测试机—使用内网ip测试—用有线网络去测试

注意:jmeter和服务器不能安装在同一个IP服务器内,jmeter本身需要性能,压测的结果会受影响。

netstat -tunl (用来查询端口)

-t :列出tcp协议端口

-u: 列出udp协议端口

-n: 不使用域名与服务名,而使用Ip地址和端口

-l: 仅列出在监听状态网络服务(只有tcp有监听状态)

安装:yum install net-tools

ping 命令的常用方法

ping大包测试网络性能,通常用来ping大数据包,来测试网络状况

*linux下ping包的默认大小为64Byte,次数无限

1、指定数据包大小为1500Byte: ping -s 1500 ip(例如:ping百度 ping -s 1500 www.baicu.com

2、指定次数为4次,数据包大小为32767Byte: ping -c 4 -s 32767 ip

 *window 下ping包默认大小为32Byte,默认ping包次数是4次

1、指定ping包大小为1500Byte: ping -l 1500 ip

2、指定次数为6次,ping包大小为1500: ping -n 6 -l 1500 ip

tcping命令

tcping是针对tcp监控的,也可以看到ping值,即使源地址禁止ping也可以通过tcping来监控服务器网络状态。tcping最大的一个特点就是可以指定监控的端口

 tcping -d -t www.baidu.com 80

安装:

Yum -y install tcping

iperf命令:主要测试两台服务器中之间的带宽

iperf是一个网络性能测试工具。iperf可以测量最大tcp和udp带宽性能,可以报告带宽、延迟抖动和数据包丢失。

2台机器A ,B都需要装iperf 

1、服务器--A 机器

    iperf -s

2、客户端-- B机器

      Perf -c 服务器的ip -t   20

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值