Java性能优化打造亿级流量秒杀系统:2.性能压测
2.性能压测
通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。
一、准备环境
- 安装CentOS 7.4
- 安装jdk 1.8
- 安装mysql
yum install mysql*
- 安装mariadb(在centos上,mysql被mariadb替换了?
- 启动mariadb
systemctl start mariadb.service
就可以把mysql启动起来了。
查看mysql是否启动了: ps -ef | grep mysql
查看端口: netstat -anp | grep 3306
- 修改mysql的root密码
mysqladmin -u root password root
- 尝试连接数据库
mysql -uroot -proot
show databases
use miaosha
show tables
- 将sql文件导入数据库
mysql -uroot -proot < //tmp/miaosha.sql
部署 :
- maven打包
- 上传服务器,运行
** 外挂配置文件:** 外挂配置文件的优先级更高。
- vim application.properties
修改外挂配置文件
server.port=80
- java -jar miaosha.jar --spring.config.addiction-location=/var/www/miaosha/application.properties
编写启动脚本:
- vim deploy.sh
nohup java -Xms400m -Xmx400m -XX:NewSize=200m -XX:MaxNewSize=200m -jar miaosha.jar --spring.config.addition-location=/var/www/miaosha/application.properties
nohup:意味着即便关闭命令行也不停止程序运行。
-
chmod -R 777 *
-
./deploy.sh &
-
tail nohup.out 查看日志
二、性能压测
项目完成后,上线前进行。可以发现许多性能瓶颈。
- 新建线程组
- 添加-取样器-http请求
使用长连接,直接压测对应的接口。防止性能瓶颈出现在http建立上。
- 查看结果树
- 聚合报告
响应时间的平均值,90%的请求都在10ms内得到了响应。
三、发现并发容量问题
- ps -ef | grep java 找到java进程号
- pstree -p 9890 查看9890进程的线程
pstree -p 9890 | wc -l
- top -H 查看机器性能
主键默认是聚簇索引,因此查询速度最快。