性能优化概述
在做性能优化前, 我们需要对如下进⾏考虑
1.当前系统结构瓶颈
观察指标
压⼒测试 ab(httpd-tools) webbanch
2.了解业务模式
接⼝业务类型
系统层次化结构
3.性能与安全
性能好安全弱
安全好性能低
压⼒测试⼯具
1.安装压⼒测试⼯具 ab
yum install httpd-tools -y
2.了解压测⼯具使⽤⽅式
ab -n 200 -c 2 http://127.0.0.1/
-n 总的请求次数
-c 并发请求数
-k 是否开启⻓连接
3. 配置 Nginx 静态⽹站与 tomcat 动态⽹站环境
给Nginx准备静态⽹站
mkdir -p /soft/code
echo "<h1> Ab Load </h1>" > /soft/code/bgx.html
给Tomcat准备静态⽹站⽂件
yum -y install tomcat
mkdir -p /usr/share/tomcat/webapps/ROOT/
echo "<h1> Ab Load </h1>" > /usr/share/tomcat/webapps/ROOT/bgx.html
vi /usr/local/nginx/conf/nginx.conf
root /soft/code;
try_files $uri $uri/ @java_page;
index index.jsp index.html;
}
location @java_page{
proxy_pass http://192.168.1.1:8080;
}
}
4.使⽤ ab ⼯具进⾏压⼒测试
##进⾏压⼒测试
ab -n2000 -c2 http://192.168.1.1/bgx.html
ab -n2000 -c2 http://192.168.1.1:8080/bgx.html
Server Software: nginx/1.18.0
Server Hostname: 192.168.1.1
Server Port: 80
Document Path: /bgx.html
Document Length: 19 bytes
Concurrency Level: 2
Time taken for tests: 0.104 seconds ##总花费总时见
Complete requests: 2000 ##总请求数
Failed requests: 0 ##请求失败数
Write errors: 0
Total transferred: 500000 bytes
HTML transferred: 38000 bytes
Requests per second: 19140.59 [#/sec] (mean) ##每秒多少请求/s(总请求出/总共完成的时间)
Time per request: 0.104 [ms] (mean) ##客户端访问服务端, 单个请求所需花费的时间
Time per request: 0.052 [ms] (mean, across all concurrent requests) ##服务端处理请求的时间
Transfer rate: 4673.00 [Kbytes/sec] received ##判断⽹络传输速率, 观察⽹络是否存在瓶颈
5.将 nginx 下的 bgx ⽂件移⾛, 再次压测会由 tomcat 进⾏处理
影响性能指标
影响性能⽅便整体关注
1.⽹络
⽹络的流量
⽹络是否丢包
这些会影响http的请求与调⽤
2.系统
硬件有没有磁盘损坏,磁盘速率
系统负载、内存、系统稳定性
3.服务
连接优化、请求优化
根据业务形态做对应的服务设置
4.程序
接⼝性能
处理速度
程序执⾏效率
5.数据库