代码改变世界

linux 性能调优

2020-11-17 11:28  虎背熊腰  阅读(117)  评论(0)    收藏  举报

一:tcp系统配置:

tcp_sync_reuse

tcp_fin_time_wait

tcp-synccookie

tcp_syn_retries

 

二:nginx 基本配置如下

worker_processes   auto//auto 表示和CPU内核(线程数)相关,有几个内核,就会开启几个进程

worker_cpu_affinity  auto;

error_log  logs/error.log;

events {
  use epoll;
  accept_mutex on;
  multi_accept on;//nginx 惊群
  worker_connections 20480;
}

sendfile        on;//文件传输零拷贝

tcp_nopush on;
#告诉nginx在一个数据包里发送所有头文件,而不一个接一个的发送
tcp_nodelay on;
#告诉nginx不要缓存数据,提高nginx的数据响应速度。发送一小块数据信息时就能立即得到返回值

keepalive_timeout 30;
#keepalive超时时间,30或者更短一点都可以。
client_header_timeout 10;
client_body_timeout 10;
#设置请求头和请求体(各自)的超时时间。
reset_timedout_connection on;
#及时关闭不响应的客户端链接,释放其资源。

send_timeout 10;
#指定客户端的超时时间。
limit_conn_zone $binary_remote_addr zone=addr:5m;
#设置用于保存各种key(比如当前连接数)的共享内存的参数
limit_conn addr 50;
#设置单个IP的最大连接数。注意 这个参数是会影响你本地ab测试的,你测试的时候并发数会被限制。

gzip on;
gzip_min_length 1k;
#大于1K才压缩
gzip_buffers 4 8k;

gzip_comp_level  4;(4-6)

 

:设置php-fpm重要参数:

pm = dynamic【内存足够设置静态模式】
#选择进程模式为动态,以下第一个参数失效,后面三个参数生效。如果选择static(静态),则只有以下第一个参数生效(pm.max_children)

pm.max_children = 200
#静态模式时的固定子进程数
pm.start_servers = 1
#动态模式下起始进程数
pm.min_spare_servers = 1
#动态模式下允许的最小空闲进程。
pm.max_spare_servers = 10
#动态模式下允许的最大空闲进程。

 

:设定一个预期目标压测系统[系统单核负载不能0.7,大于则会造成响应延迟,无意义]

top 观察系统负载,和vmstat,iotop 观察情况

 

:xhprof 【lstrace】分析php代码执行过程找出优化点