Nginx服务器性能调优

Nginx 配置文件

1、根据CPU内核数设置worker进程个数,以12核CPU为例,设置11个worker进程:

worker_processes 11;

worker_cpu_affinity 000000000010 000000000100 000000001000 000000010000 000000100000 000001000000 000010000000 000100000000
001000000000 010000000000 100000000000;

2、事件模块

events {
worker_connections 65535;    # 单个worker进程的最大连接数
use epoll;
}

3、系统限制性参数

worker_rlimit_nofile 65535;    # 描述符最大限制

ulimit -a 命令可以查看当前系统的限制性参数;

在/etc/security/limits.conf 写入配置:

* soft nofile 65535

* hard nofile 65535

* soft nproc 65535

* hard nproc 65535

以上参数也可以写入 /etc/profile 文件使其生效。

4、其它

keepalive_timeout  60;     # 客户端长连接超时时间

tcp_nopush on;        #

user www-data;
pid /var/run/nginx.pid;
worker_processes auto;
worker_rlimit_nofile ;
events {
worker_connections ;
multi_accept on;
use epoll;
}
http {
server_tokens off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
access_log off;
error_log /var/log/nginx/error.log crit;
keepalive_timeout ;
client_header_timeout ;
client_body_timeout ;
reset_timedout_connection on;
send_timeout ;
limit_conn_zone $binary_remote_addr zone=addr:5m;
limit_conn addr ;
include /etc/nginx/mime.types;
default_type text/html;
charset UTF-;
gzip on;
gzip_disable "msie6";
gzip_proxied any;
gzip_min_length ;
gzip_comp_level ;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
open_file_cache max= inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses ;
open_file_cache_errors on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}

内核TCP选项

在/etc/sysctl.conf 写入配置:

net.ipv4.tcp_max_tw_buckets = 6000

设置timewait值

net.ipv4.ip_local_port_range = 1024 65000

设置允许系统打开的端口范围

net.ipv4.tcp_tw_recycle = 1

是否启用timewait快速回收

net.ipv4.tcp_tw_reuse = 1

允许将TIME-WAIT sockets 重新用于新的TCP连接

net.ipv4.tcp_syncookies = 1

SYN等待队列溢出时,使用Cookies来处理

net.ipv4.tcp_max_orphans = 262144

net.ipv4.tcp_max_syn_backlog = 262144

记录尚未收到的客户端确认信息的连接请求的最大值

net.ipv4.tcp_timestamps = 0

使用时间戳作为序列号

net.ipv4.tcp_synack_retries = 1

设置SYN重试的次数

net.ipv4.tcp_syn_retries = 1

net.ipv4.tcp_fin_timeout =1

net.ipv4.tcp_keepalive_time = 30

net.core.somaxconn = 262144

listen函数的backlog默认会将内核参数net.core.somaxconn限制到128

net.core.netdev_max_backlog = 262144

修改完成后执行 sysctl -p 命令使其生效。

 参考文档:

http://ourjs.com/detail/5290c35850c832bd03000001

Nginx 服务器性能参数设置的更多相关文章

  1. Tomcat性能参数设置

    Tomcat性能参数设置 Tomcat性能参数设置 博客分类: Java LinuxTomcat网络应用多线程Socket 默认参数不适合生产环境使用,因此需要修改一些参数 1.修改启动时内存参数.并 ...

  2. nginx服务器绑定域名和设置根目录的方法

    nginx服务器绑定域名以及设置根目录非常方便,首先进入nginx安装目录,然后执行 vim conf/nginx.conf 打开nginx的配置文件,找到 server { ..... ..... ...

  3. Nginx 服务器性能Bug和性能优化方案(真实经历)

    一.遇到的问题 1.问题:本应该是3个ffmpeg ,但是怎么会有5个ffmpeg出现? 2.Lua脚本问题,一直写入日志,导致有大量的日志,这里的错误日志是直接写进nginx的error.log 日 ...

  4. Nginx服务器性能优化与安全配置实践指南

    转载自:https://www.bilibili.com/read/cv16151784?spm_id_from=333.999.0.0 1.引言 1.1 目的 为了更好的指导部署与测试艺术升系统ng ...

  5. nginx+php-fpm性能参数优化原则

    1.worker_processes 越大越好(一定数量后性能增加不明显)   2.worker_cpu_affinity 所有cpu平分worker_processes 要比每个worker_pro ...

  6. 五种常用web服务器jvm参数设置

     一.tomcat Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大.有以下几种方法可以选用:第一种方法:在配置文件中设置Windows下,在文件/bi ...

  7. Appium 自动化测试(7) -- Appium 服务器初始化参数设置

    Desired Capabilities Desired capabilities 是一些发送给 Appium 服务器的键值对集合 (比如 map 或 hash),告诉服务器我们想要启动什么类型的自动 ...

  8. Mysql Innodb 性能参数设置 https://www.rathishkumar.in/2017/01/how-to-allocate-innodb-buffer-pool-size-in-mysql.html

    参考原文: https://www.rathishkumar.in/2017/01/how-to-allocate-innodb-buffer-pool-size-in-mysql.html 查看系统 ...

  9. nginx服务器绑定域名和设置根目录

    首先进入nginx安装目录的配置目录conf,然后执行 vi conf/nginx.conf 打开nginx的配置文件,找到并修改红字部分 server { listen default_server ...

随机推荐

  1. C语言 百炼成钢1

    //题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> ...

  2. pre标签避免一行过长打破格局

    pre{ white-space:pre-wrap; word-wrap:break-word; word-break:break-all }

  3. 【插件开发】—— 1 Eclipse插件开发导盲

    [插件开发]—— 1 Eclipse插件开发导盲   在真正接触eclipse插件开发一个月后,对插件的开发过程以及技术要求,也有了一定的了解.遥想之前像无头苍蝇一样乱撞乱学,真心觉得浪费了不少时间. ...

  4. 20135220谈愈敏Linux_总结

    Linux_总结 具体博客链接 计算机是如何工作的 操作系统是如何工作的 构造一个简单的Linux系统MenuOS 系统调用(上) 系统调用(下) 进程的描述和创建 可执行程序的装载 进程的切换和系统 ...

  5. 20145208 实验二 Java面向对象程序设计

    20145208 实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步 ...

  6. 看牙与IT项目

    周末为了一颗牙第五次去牙科诊所,得到的消息是:还需要观察至少2周才能做牙冠,同时发现了较深的牙结石需要做刮治,刮治疗需要2次.因此至少要再去医院3次.从去年的六月体检发现这颗牙的问题,目前最乐观估计也 ...

  7. 使用logstash+elasticsearch+kibana快速搭建日志平台

    日志的分析和监控在系统开发中占非常重要的地位,系统越复杂,日志的分析和监控就越重要,常见的需求有: * 根据关键字查询日志详情 * 监控系统的运行状况 * 统计分析,比如接口的调用次数.执行时间.成功 ...

  8. Slider 滚动条 Pagination分页插件 JS Ajax 数据范围筛选 加载 翻页 笔记

    入职以后的第二个任务  根据用户所选的价格范围 筛选数据 修复BUG - 筛选数据后 总数没有更新.列表显示错误.翻页加载错误 用到的一些知识点 jquery插件系列之 - Slider滑块 max ...

  9. 【hello,world 也打脸】记storm-starter在某知名IDE下的悲催调试经历

    背景 最近收到这样一个问题: Storm处理消息时会根据Topology生成一棵消息树,Storm如何跟踪每个消息.如何保证消息不丢失以及如何实现重发消息机制? 虽已回复,但心想还是看下storm这块 ...

  10. 浅析C#中的“==”和Equals

    1.“==”和Equals两个真的有关联吗? 对于“==”和Equals大多数网友都是这样总结的: “==” 是比较两个变量的值相等. Equals是比较两个变量是否指向同一个对象. 如:这篇文章,并 ...