Linux & Nginx 性能参数调优

标签: linux nginx 性能 | 发表时间:2016-04-01 02:10 | 作者:iamH
出处:http://www.iteye.com
主要针对linux 文件句柄以及网卡参数调优

修改linux最大文件句柄数
执行
ulimit -a
查看open files  参数

修改linux系统参数。vi /etc/security/limits.conf 添加

*  soft  nofile  65536

*  hard  nofile  65536

修改以后保存,注销当前用户,重新登录,执行ulimit -a ,ok ,参数生效了

nginx

1. use epoll; 使用epoll的I/O模型 如:

events
{
   use epoll;
   worker_connections XXXX;
}


2. worker_processes 8;

nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cpu计为8)。

3. worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

为每个进程分配cpu,上例中将8 个进程分配到8 个cpu,当然可以写多个,或者将一
个进程分配到多个cpu。

4. worker_rlimit_nofile 65535;



5. worker_connections 65535;

每个进程允许的最多连接数, 理论上每台nginx 服务器的最大连接数为worker_processes*worker_connections。

6. keepalive_timeout 60;

keepalive 超时时间。

7. client_header_buffer_size 4k;

客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。


8.open_file_cache max=65535 inactive=20s;


这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓存。

9.open_file_cache_valid 30s;


这个是指多长时间检查一次缓存的有效信息。

10.open_file_cache_min_uses 1;


11.open_file_cache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive时间内一次没被使用,它将被移除


关于Linux内核参数的优化:

vi /etc/sysctl.conf

net.ipv4.tcp_max_tw_buckets = 6000

timewait 的数量,默认是180000。

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,当出现SYN 等待队列溢出时,启用cookies 来处理。

net.core.somaxconn = 262144

web 应用中listen 函数的backlog 默认会给我们内核参数的net.core.somaxconn 限制到128,而nginx 定义的NGX_LISTEN_BACKLOG 默认为511,所以有必要调整这个值。

net.core.netdev_max_backlog = 262144

每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。

net.ipv4.tcp_max_orphans = 262144

系统中最多有多少个TCP 套接字不被关联到任何一个用户文件句柄上。如果超过这个数字,孤儿连接将即刻被复位并打印出警告信息。这个限制仅仅是为了防止简单的DoS 攻击,不能过分依靠它或者人为地减小这个值,更应该增加这个值(如果增加了内存之后)。

net.ipv4.tcp_max_syn_backlog = 262144

记录的那些尚未收到客户端确认信息的连接请求的最大值。对于有128M 内存的系统而言,缺省值是1024,小内存的系统则是128。

net.ipv4.tcp_timestamps = 0

时间戳可以避免序列号的卷绕。一个1Gbps 的链路肯定会遇到以前用过的序列号。时间戳能够让内核接受这种“异常”的数据包。这里需要将其关掉。

net.ipv4.tcp_synack_retries = 1

为了打开对端的连接,内核需要发送一个SYN 并附带一个回应前面一个SYN 的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN+ACK 包的数量。

net.ipv4.tcp_syn_retries = 1

在内核放弃建立连接之前发送SYN 包的数量。

net.ipv4.tcp_fin_timeout = 1

如 果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2 状态的时间。对端可以出错并永远不关闭连接,甚至意外当机。缺省值是60 秒。2.2 内核的通常值是180 秒,3你可以按这个设置,但要记住的是,即使你的机器是一个轻载的WEB 服务器,也有因为大量的死套接字而内存溢出的风险,FIN- WAIT-2 的危险性比FIN-WAIT-1 要小,因为它最多只能吃掉1.5K 内存,但是它们的生存期长些。

net.ipv4.tcp_keepalive_time = 30

当keepalive 起用的时候,TCP 发送keepalive 消息的频度。缺省是2 小时。

已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [linux nginx 性能] 推荐:

Linux & Nginx 性能参数调优

- - Linux - 操作系统 - ITeye博客
主要针对linux 文件句柄以及网卡参数调优. 修改linux最大文件句柄数. 查看open files  参数. vi /etc/security/limits.conf 添加. 修改以后保存,注销当前用户,重新登录,执行ulimit -a ,ok ,参数生效了. use epoll; 使用epoll的I/O模型 如:.

Nginx性能优化

- - 博客 - 伯乐在线
Nginx作为一个非常流行和成熟的Web Server和Reserve Proxy Server,网上有大量的性能优化教程,但是不同的业务场景千差万别,什么配置是最适合自己的,需要大量的测试和实践以及不断的优化改进. 最近用户调用量突破百万大关之后,就遇到了一些问题,虽然不算太复杂,但也折腾了挺长时间才搞定,积累了不少经验.

linux下安装nginx、pcre、zlib、openssl

- - CSDN博客推荐文章
1、安装nginx之前需要安装 PCRE库的安装. 最新下载地址   ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/. tar –zxvf pcre-8.21.tar.gz,解压目录为:pcre-8.21. 然后进入到 cd pcre-8.21,进行配置、编译、安装.

Nginx配置性能优化

- - CSDN博客互联网推荐文章
大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了. 而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能很好地工作了. 然而,如果你真的想挤压出Nginx的性能,你必须更深入一些. 在本指南中,我将解释Nginx的那些设置可以微调,以优化处理大量客户端时的性能.

Nginx优化指南+LINUX内核优化+linux连接数优化+nginx连接数优化

- - CSDN博客系统运维推荐文章
Most setup guides for Nginx tell you the basics - apt-get a package, modify a few lines here and there, and you’ve got a web server. In this guide, I’ll explain which settings in nginx can be fine tuned in order to optimize performance for handling a large number of clients.

Nginx线程池性能提升9倍(Thread Pools in NGINX Boost Performance 9x!)

- - SegmentFault 最新的文章
五年级英语水平,端午家庭作业. Nginx以异步、事件驱动的方式处理连接. 传统的方式是每个请求新起一个进程或线程,Nginx没这样做,它通过非阻塞sockets、epoll、kqueue等高效手段,实现一个worker进程处理多个连接和请求. 一般情况下下是一个CPU内核对应一个worker进程,所以worker进程数量固定,并且不多,所以在任务切换上消耗的内存和CPU减少了.

Linux 性能优化

- - Gsion&apos;s Blog
1) Linux Proc文件系统,通过对Proc文件系统进行调整,达到性能优化的目的. 2) Linux性能诊断工具,介绍如何使用Linux自带的诊断工具进行性能诊断. 加粗斜体表示可以直接运行的命令. 二、/proc/sys/kernel/优化. 该文件有一个二进制值,该值控制系统在接收到ctrl+alt+delete按键组合时如何反应.

Nginx使用Linux内存加速静态文件访问

- - IT技术博客大学习
标签:   Nginx. Nginx是一个非常出色的静态资源web服务器. 如果你嫌它还不够快,可以把放在磁盘中的文件,映射到内存中,减少高并发下的磁盘IO. nginx.conf中所配置站点的路径是/home/wwwroot/res,站点所对应文件原始存储路径:/opt/web/res. shell脚本非常简单,思路就是拷贝资源文件到内存中,然后在把网站的静态文件链接指向到内存中即可.

本博客 Nginx 配置之性能篇

- - JerryQu 的小站
在介绍完我博客(imququ.com)的 Nginx 配置中 与安全有关的一些配置后,这篇文章继续介绍与性能有关的一些配置. WEB 性能优化是一个系统工程,涵盖很多方面,做好其中某个环节并不意味性能就能变好,但可以肯定地说,如果某个环节做得很糟糕,那么结果一定会变差. 首先说明下,本文提到的一些 Nginx 配置,需要较高版本 Linux 内核才支持.

Linux 性能分析工具 nmon for Linux

- - CSDN博客架构设计推荐文章
nmon 是 Nigel's performance Monitor for Linux on POWER, x86, x86_64, Mainframe & now ARM (Raspberry Pi) 的缩写,意思是 Nigel(nmon 的作者是 Nigel Griffiths) 的 Linux 性能检测器.