亿级流量的秒杀系统压测性能分析

性能分析常用方法
系统出现问题分类:
1、 系统异常:
CPU 占用率过高, 磁盘满了, 磁盘 IO 频繁, 网络流量异常,通过指令进行排查: top, free,
dstat ,pstack,vmstat,strace 获取系统异常数据;
可视化工具: promethues ,
2、 业务异常
流量太多系统扛不住, 耗时长, 线程死锁, 多线程并发, 频繁 full gc, oom , 排查方式:
top,jstack,pstack,strace ,gc 日志, 业务日志(通过日志发现问题, 解决问题)
可视化工具: promethues 

2.1TOP 指令监控 cpu 使用情况, 根据 cpu 使用情况分析系统整体运行情况
Load average : 参数一: 1 分钟内 cpu 平均使用率, 参数二: 5 分钟内 cpu 平均使用率, 参数
三: 15 分钟之内 cpu 平均使用率
单核心 CPU:
Load average < 1 ,表示 cpu 毫无压力, 比较空闲, 运行通畅
Load average = 1 , 表示 cpu 刚刚被占满, 没有可供提供的 cpu 资源了
Load average > 1 , 表示 cpu 满负荷运作, 线程处于阻塞状态, 等待 cpu 的资源
Load average > 5 , 表示 cpu 线程已经严重阻塞, 必须进行处理了;
4 核心 CPU:
Load average < 4 ,表示 cpu 毫无压力, 比较空闲, 运行通畅
Load average = 4 , 表示 cpu 刚刚被占满, 没有可供提供的 cpu 资源了
Load average > 4 , 表示 cpu 满负荷运作, 线程处于阻塞状态, 等待 cpu 的资源
Load average > 10 , 表示 cpu 线程已经严重阻塞, 必须进行处理了;
生产环境中: cpu 持续占用率, 长时间超过 70%, 其实就必须对服务进行处理了
 

2.2:Free 是排查线上内存问题的重要指令, 内存问题很多时候是引起 cpu 使用率较高的原因

2.3:df 指令查看磁盘使用情况, 有时候服务出现了问题, 有可能是磁盘不够

2.4: Dstat , 集成了 vmstat , iostat ,netstat 工具功能完成查询任务

业务问题: jmap ,jstack ,jinfo,jstat ,可视化工具排查
 

服务端调优
Tomcat 服务器调优(内置服务器)
Tomcat 默认使用的线程数:200

Tomcat 默认连接数:8192
 

Tomcat 等等队列

tomcat 默认等等队列 100, 最大线程 200, 相当于做了限流, 最多只能进入这么多线程; 超过这个线程数, 就会被抛弃;

Tomcat 服务调优
tomcat:
max-threads: 800 # 最大线程数
accept-count: 1000 # 等待对象, 最多允许 1000 个线程在队列中等待
max-connections: 20000 # 最大允许有 20000 个链接被建立
min-spare-threads: 100 # 最大空闲数, 防止流量洪峰
uri-encoding: utf-8

利用linux命令查看服务器一个进程有多少个线程在执行:

pstree -p 进程号| wc -l

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值