Java性能优化打造亿级流量秒杀系统:2.性能压测

2.性能压测

通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。

一、准备环境

  1. 安装CentOS 7.4
  2. 安装jdk 1.8
  3. 安装mysql

yum install mysql*

  1. 安装mariadb(在centos上,mysql被mariadb替换了?
  2. 启动mariadb

systemctl start mariadb.service
就可以把mysql启动起来了。
查看mysql是否启动了: ps -ef | grep mysql
查看端口: netstat -anp | grep 3306

  1. 修改mysql的root密码

mysqladmin -u root password root

  1. 尝试连接数据库

mysql -uroot -proot
show databases
use miaosha
show tables

  1. 将sql文件导入数据库

mysql -uroot -proot < //tmp/miaosha.sql

部署 :

  1. maven打包
  2. 上传服务器,运行

** 外挂配置文件:** 外挂配置文件的优先级更高。

  1. vim application.properties

修改外挂配置文件
server.port=80

  1. java -jar miaosha.jar --spring.config.addiction-location=/var/www/miaosha/application.properties

编写启动脚本:

  1. 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:意味着即便关闭命令行也不停止程序运行。

  1. chmod -R 777 *

  2. ./deploy.sh &

    在这里插入图片描述

  3. tail nohup.out 查看日志

二、性能压测

项目完成后,上线前进行。可以发现许多性能瓶颈。

  1. 新建线程组
  2. 添加-取样器-http请求
    在这里插入图片描述
    在这里插入图片描述

使用长连接,直接压测对应的接口。防止性能瓶颈出现在http建立上。

  1. 查看结果树
  2. 聚合报告

image.png
image.png
响应时间的平均值,90%的请求都在10ms内得到了响应。

三、发现并发容量问题

  1. ps -ef | grep java 找到java进程号
  2. pstree -p 9890 查看9890进程的线程

pstree -p 9890 | wc -l

  1. top -H 查看机器性能

image.png image.png


image.png
image.png

主键默认是聚簇索引,因此查询速度最快。

image.png

猜你喜欢

转载自blog.csdn.net/xiaohaigary/article/details/108010734