jmeter
1 下载
https://jmeter.apache.org/download_jmeter.cgi
2 使用
解压到文件夹下 进入bin 目录
cmd F:\TOOLS\Apache\jmeter\apache-jmeter-5.4.3\bin
# 运行
jmeter.bat
先添加一个线程组
创建http请求
添加结果树
添加聚合报告
测试
#查看秒杀对应进程号 kill -9 进程号 杀死进程
ps -ef |grep miaosha
root 14507 14506 99 20:38 pts/0 00:00:13 java -Xms400m -Xmx400m -XX:NewSize=200m -XX:MaxNewSize=200m -jar miaosha.jar
root 14534 13693 0 20:38 pts/0 00:00:00 grep --color=auto miaosha
#查看端口号 可看出在8090端口启动了
[root@master miaosha]# netstat -anp | grep 14507
tcp 0 0 0.0.0.0:8090 0.0.0.0:* LISTEN 14507/java
unix 2 [ ] STREAM CONNECTED 48464744 14507/java
在host文件下配值主机 客户端发起dns查询先从host文件中查看映射 没有再去dns服务上查询
保存后点击run就可以在结果树和报告上查看信息
#查看某个进程对应的线程数量
[root@master ~]# ps -ef |grep java
root 14507 1 0 May05 ? 00:01:57 java -Xms400m -Xmx400m -XX:NewSize=200m -XX:MaxNewSize=200m -jar miaosha.jar
root 32134 32056 0 13:19 pts/0 00:00:00 grep --color=auto java
# pstree -p 端口号
[root@master ~]# pstree -p 14507
#查看线程数量
[root@master ~]# pstree -p 14507 | wc -l
29
#查看机器性能数量
top -H
容量问题 并发线程数上不去
查看SpringBoot配置
spring-configuration-metadata.json文件下 查看个节点的配置
tomcat参数调整
[root@master /]# cd /www/miaosha
[root@master miaosha]# vim application.properties
server.port=8090
server.tomcat.accept-count=1000
server.tomcat.max-connections=10000
#4核8G 一般是800 线程切换要时间
server.tomcat.max-threads=500
server.tomcat.min-spare-threads=100
server.tomcat.keepAliveTimeOut=1800000
server.tomcat.maxKeepAliveRequests=100
root@master miaosha]# ps -ef |grep java
root 8596 32056 0 14:05 pts/0 00:00:00 grep --color=auto java
root 14507 1 1 May05 ? 00:17:48 java -Xms400m -Xmx400m -XX:NewSize=200m -XX:MaxNewSize=200m -jar miaosha.jar
[root@master miaosha]# kill 14507
#重启
./deploy.sh &
内嵌Tomcat
package com.miaoshaproject.config;
import org.apache.catalina.connector.Connector;
import org.apache.coyote.http11.Http11NioProtocol;
import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.ConfigurableWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.stereotype.Component;
//当Spring容器内没有TomcatEmbeddedServletContainerFactory这个bean时,会把此bean加载进来
// 当springboot启动之后会将 application.properties 中server.tomcat 的参数加载到 protocol中
// 定义一个WebserverConfiguration 他会将参数传到 ConfigurableWebServerFactory内 ConfigurableWebServerFactory会将参数 customize出来
@Component
public class WebserverConfiguration implements WebServerFactoryCustomizer<ConfigurableWebServerFactory> {
@Override
public void customize(ConfigurableWebServerFactory factory) {
//使用对应工厂类定制化tomcat connector
((TomcatServletWebServerFactory)factory).addConnectorCustomizers(new TomcatConnectorCustomizer() {
@Override
public void customize(Connector connector) {
Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
//定制化KeepAliveTimeout 设置30秒内没有请求则服务端自动断开KeepAlive连接
protocol.setKeepAliveTimeout(30000);
//当客户端发送超过10 000个请求则自动断开KeepAlive连接
protocol.setMaxKeepAliveRequests(10000);
}
});
}
}