记⼀次500并发,平均响应时间慢-调优过程~~ 1、背景:LR压测,并发 500、持续压测10 分钟~ 压测结果,平均响应时间长
从报告可知,主要瓶颈在js、css、img上
2、解决 启⽤nginx 缓存、集部署、tomcat线程调优 linux内核调优
tomcat7 启⽤nio、调⼤最⼤线程。等待队列
<Connector port="6002" enableLookups="false" maxKeepAliveRequests="1" acceptCount="550" minSpareThreads="300" maxThreads="400" protocol=" http11.Http11NioProtocol"
connectionTimeout="60000"
URIEncoding="UTF-8"
redirectPort="8443" />
初始堆内存设置
JAVA_OPTS="-Xms3g -Xmx3g -Xss1024K"
nginx缓存配置,注意:需要单独⼀个server http模块配置:
proxy_connect_timeout 10;
proxy_read_timeout 180;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 4 32k;
云梯杰克逊
proxy_busy_buffers_size 96k;
proxy_temp_file_write_size 96k;
proxy_temp_path /opt/nginx/temp_dir1;
proxy_cache_path /opt/nginx/cache1 levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=10g;
#gzip on;
gzip on;#开启gzip
gzip_vary on;
gzip_min_length 1k;#不压缩临界值,⼤于1k的才压缩,⼀般不⽤改 gzip_buffers 4 16k;
gzip_comp_level 6;#压缩级别,数字越⼤压缩的越好
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif im age/png image/x-icon;#压缩⽂件类型,缺啥补啥
server 模块~
server {
listen 8080;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location ~ .*\.(gif|jpg|png|css|js)?$ {
proxy_pass server.settle;
#缓存
proxy_cache cache_one;
proxy_cache_valid 200 302 24h;癫克星
proxy_cache_valid 301 30d;
proxy_cache_valid any 5m;
expires 10d;
}
location /fsp-manage {
proxy_pass server.settle;
疲劳强度proxy_set_header Host 172.16.2.136:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
煤气作业
}
}
linux 内核调整,软件的⼝已经放⼤-需要硬件的⼝⽀撑。
内核TCP参数⽅⾯
cat /f
>>>>># aliyun configure >>>>># f.all.disable_ipv6 = 1f.default.disable_ipv6 = 1
f.lo.disable_ipv6 = 1
vm.swappiness = 0
_stale_time=120
# see details in help.aliyun/knowledge_detail/39428.html
f.all.rp_filter=0
f.default.rp_filter=0
f.default.arp_announce = 2
f.all.arp_announce=2
f.lo.arp_announce=2
# see details in help.aliyun/knowledge_detail/41334.html
p_max_tw_buckets = 5000
p_syncookies = 1
p_max_syn_backlog = 8192
p_synack_retries = 2
kernel.sysrq = 1
>>>>># jiaxin configure >>>>># fs.file-max = 1631224vm.overcommit_memory = 1
vm.max_map_count=655350
net.ipv4.ip_local_port_range = 1024 65530
p_tw_reuse = 1
p_tw_recycle = 0
p_fin_timeout = 30
p_keepalive_time = 1200
p_fastopen = 3
p_window_scaling = 1
p_timestamps = 1
p_sack = 1
液体表面张力p_congestion_control = hybla
p_rmem = 4096 87380 67108864
p_wmem = 4096 87380 67108864
p_mtu_probing = 1
p_keepalive_time = 60
p_keepalive_probes = 3
p_keepalive_intvl = 20
高压变压器
保存退出之后执⾏ sysctl -p 参数⽣效,永久⽣效
3、调整过程中注意观察 nginx access.log、tomcat _localhost_accsess.log ⼊⼝⽇志~~效果如下