优化的目的?
• 标准情况下,软件默认的参数都是对安装软件的硬件标准来设置的,⽬目前我们服务器器的硬件资源远远⼤大于要求的标准,所以为了了让服务器器性能更更加出众,充分利利⽤用服务器器的硬件资源,我们⼀一般需要优化APP的并发数来提升服务器器的性能。
优化方案?
• Nginx是主进程+工作进程模型
• worker_processes 1; 工作进程数量量 按CPU的总核⼼心调整
• worker_cpu_affinity 0010 0100 1000; CPU的亲和⼒力力
• worker_connections 1024; 一个工作进程的并发数
1、并发优化
worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000;
events {
worker_connections 1024;
}
查看主机有几个CPU
cat /proc/cpuinfo |grep "flags" |wc -l
修改config的 worker_processes 的值为4
设置CPU的亲和力
worker_cpu_affinity 0001 0010 0100 1000;
设置并发数
自定义输出
ps -eo psr,pid,args |grep "nginx"
修改Nginx的cpu亲和力
修改后查看
检查Nginx的连接数
netstat -antpl |grep nginx |grep ESTABLISHED|wc -l
长连接
http协议属于TCP协议
优化目标:减少三次握手和四次断开的次数
keepalive_timeout 5; 长连接时间
keepalive_requests 8192; 每个长连接接受最大请求数
keepalive_timeout 0; 0代表关闭
#keepalive_timeout 100;
#keepalive_requests 8192;
修改config
keepalive_timeout 5; 修改长连接时长为5
keepalive_timeout 5; 修改每个连接可以处理多少个请求数
保存 退出 关闭 重启Nginx
实现方式:
# 开启gzip
gzip off;
# 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
gzip_min_length 1k;
# gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间,后面会有详细说明
gzip_comp_level 1;
# 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types文件中找到。
gzip_types text/plain application/javascript application/x-javascript
text/css application/xml text/javascript application/x-httpd-php
image/jpeg image/gif image/png application/vnd.ms-fontobject font/ttf
font/opentype font/x-woff image/svg+xml;
# 是否在http header中添加Vary: Accept-Encoding,建议开启
gzip_vary on;
# 禁用IE 6 gzip
gzip_disable "MSIE [1-6].";
# 设置压缩所需要的缓冲区大小
gzip_buffers 32 4k;
# 设置gzip压缩针对的HTTP协议版本
gzip_http_version 1.0;
#找大文件
find /usr/share/ -type f -size +1M
未开压缩前
修改config文件
gzip on;
gzip_proxied any;
gzip_min_length 1k;
gzip_buffers 4 8k;
gzip_comp_level 6;
gzip_types text/plain text/css application/x-javascript application/javascriptapplication/xml;
修改后
客户端缓存
语法: expires [time|epoch|max|off]
默认值: expires off
作用域: http, server, location
location ~.*.(js|css)?$
{
expires 1h;
}
修改config文件
保存 重启