对Nginx进行Webscoket压力测试
我们已经完成了一个Websocket服务,单机连接压力测试能到达5.5W的连接数,考虑到那台机子里面还有其他部署的服务,以上的连接数应该是正常的。
当使用Nginx来代理连接这个Websocket服务以后,我们使用jmeter压力测试只能到4.5,做负载均衡扩展websocket服务以后,连接更少只能到达3.3W左右。
请问,哪位有经验的大佬能帮我解决下这个问题?
这是nginx的主配置:
[root@gz_vm_Emergency_brodcast_nginx01_102 ~]# cat /usr/local/nginx/conf/nginx.conf
user www www;
worker_processes 8;
#worker_cpu_affinity auto;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
error_log /data/nginx/logs/error.log crit;
pid /usr/local/nginx/conf/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 8192;
events
{
use epoll;
worker_connections 8192;
multi_accept on;
}
http
{
include mime.types;
default_type application/octet-stream;
#general options
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 128k;
client_max_body_size 3000m;
proxy_ignore_client_abort on;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
#keepalive_requests 10240;
keepalive_timeout 300;
max_ranges 1;
#open_file_cache max=65535 inactive=20s;
#open_file_cache_valid 30s;
#open_file_cache_min_uses 1;
gzip off;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
server_tokens off;
#log format
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$upstream_addr"';
access_log /data/nginx/logs/access.log main;
#-------------------
include /usr/local/nginx/conf.d/*.conf;
}
这是负载均衡的配置:
[root@gz_vm_Emergency_brodcast_nginx01_102 ~]# cat /usr/local/nginx/conf.d/web.conf
upstream lpkj_emergency {
server ip:11170 max_fails=2 fail_timeout=30s;
server ip:11170 max_fails=2 fail_timeout=30s;
#server ip:11170 max_fails=2 fail_timeout=30s;
#server ip:11170 max_fails=2 fail_timeout=30s;
keepalive 300;
}
#--------------------------------------------------
server
{
listen 11170;
server_name ip;
#proxy_buffering on;
#proxy_buffer_size 8k;
#proxy_buffers 8 4k;
#proxy_busy_buffer_size 64k;
location / {
proxy_set_header Host $host:11170;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://lpkj_emergency;
proxy_http_version 1.1;
# proxy_read_timeout 3600s;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# proxy_connect_timeout 1200s;
# proxy_read_timeout 3600s;
# proxy_send_timeout 3600s;
}
location /status {
stub_status on;
auth_basic "nginxstatus";
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
#access_log /data/nginx/logs/proxy_access.log main;
#access_log /data/nginx/logs/proxy_access.log main buffer=1024k;
access_log off;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论