就最近遇到的坑,自己总结的一些准备事项
1. 收集各个服务器的配置信息,几个CPU,多少G内存,多大的硬盘,更详细一点的可以将CPU主频,硬盘是否固态都了解清楚
2. 了解整个系统的架构,是否双机,有无反向代理,负载均衡的配置
3. 了解一下系统的各个端配置的连接数,
中间件tomcat的最大连接数,空闲连接数
war包中的连接池的初始连接数,最大连接数
DB的最大连接数
4. 要开始运行了,将各个服务器的硬盘使用情况看一下,清一下log日志等
1的目的是为了多次性能测试后,对服务器能处理的能力有一个大致的了解
2的目的是为了有失败的时候,考虑到一些架构上的问题,思考的范围加大
3的目的是不要以为别人的连接数很小而导致队列资源等待,而你花很长时间去定位,要事先了解系统的一些配置
4的目的是硬盘满了,整个压测TPS上不去,你看系统资源等情况都不太看得出来,程序也照常运行,很容易白费功夫,分析了半天死在准备上
各个环节用到的工具或者命令
1.
a. 如果服务器是linux
uname -a
cat /etc/issue
cat /etc/issue | grep Linux
cat /proc/cpuinfo
cat /proc/meminfo
df -H
b. 如果服务器是Windows
我的电脑右击或者设备管理器查看
看到在线上运行的App Node, 双机配置不一致,一个2核一个4核,用1:1的负载在跑着;
也看到一些项目,CPU核数一样,主频赫兹数不一样,在跑着;
后期定位问题发现一个App资源占用率高,一个低的
2. 画出系统拓补图
3. 查看连接数
如果是tomcat,在server.xml中可以查看,Connector
如果是war包中的连接池,一般是对DB的连接池,找开发问他配哪儿了,一般config文件
如果是DB中配置的连接数,一般这边很少配置了,因为war包中有配置对DB的连接池,SQLserver中select @@MAX_CONNECTIONS SELECT * FROM sys.configurations;
4. Linux系统用df -H 或者windows直接登录或者远程登录查看
5. 如果是查询,请插入一定量的数据再压测;如果是新增,新增中一般也有查询判断,比如注册中,手机号不能存在等,最好也要先插入一定的数据。如果新增之前不需要查询,比如log入库,可以不用准备数据。