nginx服务器调优

时间:2021-10-29 15:21:44
nginx服务器调优措施总结:
1、选择合适的网络IO模型 epoll select poll
2、配置合适的启动进程数和每个进程处理请求的工作线程数
3、启用gzip压缩以减小通信量以减少网络IO
4、降低日志级别或关闭日志
5、使用长连接,配置合适的超时时间,keep_alive keepalive-timeout
6、控制浏览器缓存
7、提高操作系统打开文件数,或配置合适的worker_rlimit_nofile来申明你期望的值
8、减少磁盘IO
9、配置nginx自带的proxy_store、proxy_cache、memcached缓存模块或应用第三方缓存模块Ncache、Varnish
 
减少磁盘IO
Nginx在CPU的利用方面是非常高效的, 所以我会坦白的告诉你这不会成为瓶颈。 同样nginx在使用内存方面也是很高效的,这也不会成为瓶颈。 现在只剩下IO这个服务器瓶颈的罪魁祸首了。为了避免IO瓶颈, 我们需要大量的减少nginx对硬盘驱动器的读写。要做到这一点,我们可以通过修改Nginx的行为,以减少磁盘写操作:
1)Access Logs
可以直接关闭它,如果你需要访问日志,可以考虑保存日志到内存中。这将会比直接写到磁盘上快很多,并且明显减少IO的使用。

2)Error Logs
可以直接关闭它,如果你需要错误日志,错误日志的等级参数你是可以指定的, 如果你指定的太低了他会记录404错误甚至是debug信息。 在实际的应用中可以将它设置为warn级别,将会是绰绰有余的并且能降低IO。

3)Open File Cache
缓存打开文件的描述符,由open_file_cache指令指定。

4)Buffers
配置Nginx缓存的大小是一个非常重要的事情。如果缓存大小设置的太小,Nginx将不得不把上游的相应结果存放到临时的缓存文件里面,这将会同时增加IO的读写操作,而且流量越大问题越多。
client_body_buffer_size指令用来指定处理客户端请求的缓冲区大小,如果你需要处理很多大的POST请求的,你必须确保缓存区要设置的足够大。
fastcgi_buffers和proxy_buffers 指令用来处理上流的响应结果。Nginx将这个buffer数据同步的传输给客户端之前,有一个缓存上限,保存到磁盘也同样受限。这个上限是通过fastcgi_max_temp_file_size和proxy_max_temp_file_size来设置的。

5)彻底移除磁盘IO
可以将数据都放入内存,这样就可以彻底不用考虑磁盘IO的阻塞了。意味着你可以通过增加内存来解决IO的瓶颈。 数据量越多,需要的内存越大。

 

nginx服务器调优的更多相关文章

  1. Nginx性能调优

    [调优]Nginx性能调优   一.Nginx优化配置 1.主配置文件优化:# vi /usr/local/nginx/conf/nginx.conf------------------------- ...

  2. Nginx 性能调优

    原文地址:http://nginx.com/blog/tuning-nginx/ Tuning NGINX for Performance Nginx 性能调优 NGINX is well known ...

  3. 【Nginx】Nginx服务器配置调优

    1.Nginx服务器配置调优 .设置nginx全局参数 vi /usr/local/nginx/conf/nginx.conf #编辑 worker_processes ; # 工作进程数,为CPU的 ...

  4. Nginx下载服务生产服务器调优

    一.内存调优 内核关于内存的选项都在/proc/sys/vm目录下.   1.pdflush,用于回写内存中的脏数据到硬盘.可以通过 /proc/sys/vm/vm.dirty_background_ ...

  5. Nginx参数调优

    (1)nginx运行工作进程个数,一般设置cpu的核心或者核心数x2 如果不了解cpu的核数,可以top命令之后按1看出来,也可以查看/proc/cpuinfo文件 grep ^processor / ...

  6. Nginx+Mysql调优

    使用nginx实现反向代理作用,具备负载均衡的功能.     接受客户端的请求 | nginx(宿主机) | |-------------------| web1 web2 (客户机)   原理: 与 ...

  7. Hadoop企业开发场景案例,虚拟机服务器调优

    Hadoop企业开发场景案例 1 案例需求 ​ (1)需求:从1G数据中,统计每个单词出现次数.服务器3台,每台配置4G内存,4核CPU,4线程. ​ (2)需求分析: ​ 1G/128m = 8个M ...

  8. 【调优】Nginx性能调优

    一.Nginx优化配置 1.主配置文件优化:# vi /usr/local/nginx/conf/nginx.conf----------------------------------------- ...

  9. nginx性能调优关键功能

     1. expires缓存时间优化作用:通过在服务器上设置合理的expires缓存时间.适合缓存的类型:静态文件:html,图片,js,css,xml都是缓存对象.优点:能够让用户不必每次访问都要重新 ...

随机推荐

  1. gitlab使用有感之坚持

    当老师请大二的学弟教我们使用这个软件的时候, 当时就吓坏我了,感觉好高大上的样子,全英文的,还有什么阿里云的服务器用来代码管理:心情一下子就不好了,感觉自己懂得东西好少啊,比学弟懂得都少,跟不上时代的 ...

  2. compress 表设置及索引设置

    -- 查看表大小 from user_segments where segment_name='TableName'; -- 查看表大小 size_m -- 2000.6796875 2211.695 ...

  3. sqlserver 分页查询总结

    sqlserver2008不支持关键字limit ,所以它的分页sql查询语句将不能用mysql的方式进行,幸好sqlserver2008提供了top,rownumber等关键字,这样就能通过这几个关 ...

  4. tensorflow 使用 4 非线性回归

    # 输入一个 x 会计算出 y 值 y 是预测值,如果与 真的 y 值(y_data)接近就成功了 import tensorflow as tf import numpy as np # py 的画 ...

  5. 微信小程序上传图片

    话不多说,直接上码. <view class="section"> <!--放一张图片或按钮 点击时去选择图片--> <image class='ph ...

  6. &lbrack;原创&rsqb; debian 9&period;3 搭建Jira&plus;Confluence&plus;Bitbucket&plus;crowd&plus;seafile &lpar;零&rpar; 修改端口的问题

    [原创] debian 9.3 搭建Jira+Confluence+Bitbucket+seafile  (零)  修改端口的问题 来来来,今天说个没有人说过的事, 搭建好Jira+Confluenc ...

  7. Normal Map中的值, Tangent Space, 求算 Tangent 与 Binormal 与 TBN Matrix

      - Normal Map中的值 -   有没有想过,Normal Map(法线贴图)为什么看上去都是“偏蓝色”的?这是因为,在map中存储的值都是在Tangent Space(切空间)下的.比如, ...

  8. python中获取执行脚本路径方法

    1.sys.path[0]:获取执行脚本目录绝对路径 #每次执行脚本时,python会将执行脚本目录加入PYTHONPATH环境变量中(sys.path获取) #!/usr/bin/python3 i ...

  9. cannot send list of active checks to &lbrack;ZabbixServerIp&rsqb;&colon; host &lbrack;Zabbix server&rsqb; not found

    解决办法 因为web端上被监控端的主机名和zabbix_agentd.conf中的Hostname名字不一样,改为一样的即可 注意发现问题一定要看日志: tail -f /var/log/zabbix ...

  10. bzoj 2300 &colon; &lbrack;HAOI2011&rsqb;防线修建

    set动态维护凸包 #include<iostream> #include<cstdio> #include<cstring> #include<algori ...