前言

由于默认的Linux内核参数考虑的是最通用的场景,这明显不符合用于支持高并发访问的Web服务器定义,所以需要修改Linux内核参数,使的nginx拥有更高的性能。

在优化内核时, 可以做的事情很多, 不过, 我们通常会根据业务特点来进行调整, 当
Nginx作为静态Web内容服务器、 反向代理服务器或是提供图片缩略图功能(实时压缩图片)
的服务器时, 其内核参数的调整都是不同的。 这里只针对最通用的、 使Nginx支持更多并发
请求的TCP网络参数做简单说明。

修改

修改的文件是/etc/sysctl.conf文件来更改内核参数。然后执行sysctl -p 让修改生效。

  • fs.file-max=999999 :这个参数表示一个进程可以同时打开的最大句柄数,这个参数值直接限制最大并发连接数,需要根据实际配置。因为连接在linux系统表示为一个文件句柄。
  • net.ipv4.tcp_tw_reuse=1:这个参数设置为1,表示允许将TIME-WAIT状态下的socket重新用于新的TCP连接,达到连接的复用,而不用关闭再创建,这对于服务器来说是很有意义的,因为服务器上总是会有大量的TIME-WAIT状态的连接。
  • net.ipv4.tcp_keepalive_time=600:这个参数表示当keepalive启用时,TCP发送keepalive消息的频度,默认是2小时,将其设置小一些,可以更快清理无效的连接,也就是设置长连接心跳检测的频度。
  • net.ipv4.tcp_fin_timeout=60:这个参数表示当服务器主动关闭连接时, socket保持在FIN-WAIT-2状
    态的最大时间。
  • net.ipv4.tcp_max_tw_buckets = 5000:这个参数表示操作系统允许TIME_WAIT套接字数量的最大值,如果超过这个数字, TIME_WAIT套接字将立刻被清除并打印警告信息。 该参数默认为180000, 过多的TIME_WAIT套接字会使Web服务器变慢。
  • net.ipv4.ip_local_port_range = 1024 61000:这个参数定义了在UDP和TCP连接中本地(不包括连接的远端)端口的取值范围。
  • net.ipv4.tcp_max_syn_backlog=8192:这个参数表示TCP三次握手建立阶段接收SYN请求队列的最大长度, 默认为1024, 将其设置得大一些可以使出现Nginx繁忙来不及接收新连接的情况时,Linux不至于丢失客户端发起的连接请求。就是来不及接收的请求会入列,如果队列满了会直接返回错误信息给客户端。如果设置大一些就可以接收多一点连接。
  • net.ipv4.tcp_rmem = 4096 32768 262142:这个参数定义了TCP接收缓存(用于TCP接收滑动窗口) 的最小值、 默认值、 最大值。
  • net.ipv4.tcp_wmem = 4096 32768 262142:这个参数定义了TCP发送缓存(用于TCP接收滑动窗口) 的最小值、 默认值、 最大值。
  • net.core.netdev_max_backlog = 8096:当网卡接收数据包的速度大于内核处理的速度时, 会有一个队列保存这些数据包。 这个参数表示该队列的最大值。
  • net.core.rmem_default = 262144:这个参数表示内核套接字接收缓存区默认的大小,也就是接收一个Socket套接字连接时,内核缓冲区的默认大小。
  • net.core.wmem_default = 262144:这个参数表示内核套接字发送缓存区默认的大小,也就是发送一个Socket套接字连接时,内核缓冲区的默认大小。
  • net.core.rmem_max = 2097152:这个参数表示内核套接字接收缓存区最大的大小,也就是接收一个Socket套接字连接时,内核缓冲区的最大大小。
  • net.core.wmem_max = 2097152:这个参数表示内核套接字发送缓存区最大的大小,也就是发送一个Socket套接字连接时,内核缓冲区的最大大小。
  • net.ipv4.tcp_syncookies = 1 :与性能无关,用于解决TCP的SYN攻击。

滑动窗口的大小与套接字缓存区会在一定程度上影响并发连接的数目。 每个TCP连接都会为维护TCP滑动窗口而消耗内存, 这个窗口会根据服务器的处理速度收缩或扩张。

为支持nginx高并发而修改的一些Linux内核参数相关推荐

  1. 【转】Nginx服务并发过10万的Linux内核优化配置

    http://www.linuxidc.com/Linux/2012-11/75151.htm 以下Linux 系统内核优化配置均经在线业务系统测试,服务器运行状态良好,用了一些时间整理,现和大家分享 ...

  2. Nginx 服务并发过10万的Linux内核优化配置

    以下Linux 系统内核优化配置均经在线业务系统测试,服务器运行状态良好,用了一些时间整理,现和大家分享一下,如有那位高人看到配置上有问题,请给与指出! Controls the use of TCP ...

  3. Nginx高并发系统内核优化

    Nginx高并发系统内核优化 Socket优化 Nginx 系统内核 文件优化 Nginx 系统内核 配置文件优化 Nginx配置文件 内核配置文件 PHP7配置文件 PHP-FPM配置文件 php- ...

  4. linux内核并发教程,修改Linux内核参数提高Nginx服务器并发性能

    当linux下Nginx达到并发数很高,TCP TIME_WAIT套接字数量经常达到两.三万,这样服务器很容易被拖死.事实上,我们可以简单的通过修改Linux内核参数,可以减少Nginx服务器 的TI ...

  5. 修改Linux内核参数提高服务器并发能力

    1.参数设置 查看相关的参数 sysctl -a|grep tcp_keepalive net.ipv4.tcp_keepalive_intvl = 30 net.ipv4.tcp_keepalive ...

  6. Fastsocket:高扩展性的 Socket 以及 Linux 内核的底层网络实现

    目录 简介 安装编译 测试结果 GitHub README 介绍 参加者 安装 从源安装 开关内核 系统配置 用法 合适的场景### 如何使用 演示服务器 评价 Nginx的 HAProxy 在线评估 ...

  7. 转载:Linux内核参数的优化(1.3.4)《深入理解Nginx》(陶辉)

    原文:https://book.2cto.com/201304/19615.html 由于默认的Linux内核参数考虑的是最通用的场景,这明显不符合用于支持高并发访问的Web服务器的定义,所以需要修改 ...

  8. 【C++】链表反转逆序|建立、删除、修改、插入|linux内核链表与普通链表

    目录 C++实现链表逆序 链表的建立.删除.修改.插入 linux内核链表与普通链表 C++实现链表逆序 实现链表逆序,首先要有一个链表,下面是链表的结构体: typedef struct listn ...

  9. Apache与Nginx比较(Nginx 高并发情况常用,必须学习)

    Apache与Nginx的优缺点比较 1.nginx 轻量级,同样起web 服务,比apache 占用更少的内存及资源. 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高 ...

最新文章

  1. php alert 乱码
  2. 创建型模式--原型模式
  3. VC++使用ADO连接SQL Server数据库
  4. CodeIgniter_2.2.0整合smarty模板引擎
  5. python中迭代器和生成器的区别
  6. css 如何让背景图片拉伸填充避免重复显示
  7. 文末送书 | 阿里资深员工撰写:深度实践OCR
  8. Windows 10 装Ubuntu 搞定了
  9. VBA dialogs 调用对话框
  10. iPhone 屏幕适配尺寸整理
  11. 电驴无法增加服务器怎么办,电驴连接不上服务器怎么办?
  12. vue 通过 Ctrl 、Shift 键 + 点击鼠标实现 div 多选操作
  13. Android 获取wifi列表
  14. 深度搜索解决数独游戏
  15. java spel_Java spring SPEL表达式注入
  16. GA遗传算法实现记录 C++版本 解决多元函数最值问题
  17. Cleve Moler - MATLAB 创始人金秋10月中国大学校园行
  18. SAP 系统数据库恢复
  19. 【科创人独家】Worktile王涛:创业那些坑很难避免,要磨练在坑里吸取营养的能力
  20. Raspberry Pi 3 Model B+ (树莓派3B+)快速上手

热门文章

  1. 专业英语笔记:三次信息化浪潮
  2. 【多题合集】高精度加减乘除
  3. C ++ 指针 | 指针与函数、数组_3
  4. 手机端html使用地理定位,html5之使用地理定位
  5. 2017.7.30 玩具装箱 思考记录
  6. 每日小记 2017.2.26
  7. mosquitto常见问题及其解决办法
  8. 关键字Restrict
  9. 快捷指令 python_快捷指令 pythonista wifi连接上局域网(自动)唤醒主机电脑或投影仪...
  10. kernel开启启动log_systemd service 如何开启 core dump