您好,游客选择字体:繁體
首页 >> 服务器教程 >> Nginx 性能调优怎么做?

Nginx 性能调优怎么做?

amdin 2020-07-10 0
浏览次数84

NGINX以高性能的负载使用均衡器,缓存,和web服务器技术闻名,驱动了中国全球经济超过 40% 最繁忙的网站。在大多数应用场景下,默认的 NGINX 和 Linux 设置一个可以进行很好的工作,但要真正达到企业最佳选择性能,有些什么时候必须需要做些调整。本文将讨论当调优系统时要考虑的一些NGINX和Linux设置。

        有太多的设置可以调整,但本文只涵盖了少数对大多数用户具有优化好处的设置。 本文不包括需要深入了解NGINX和Linux的设置,也不包括Nginx支持团队或专业服务团队的指导。专业的服务团队已经与世界上许多最热门的网站合作,调优Nginx以获得最大的性能,充分利用NGINX或NGINX的部署。

       如果已经对 nginx 架构和配置的概念有了一个基本的理解,那么本文不会重复 nginx 文档,而是会提供一个选项的概述和相关文档的链接。

       对于何时遵循调整准则:一次只改变一个设置,如果不能有效地提高性能,改回为默认值。

       先从讨论Linux调优开始,因为对于一些实际操作管理系统进行配置的设置决定了如何通过优化Nginx的配置。

       调优Linux 的配置

       Linux内核(2.6以上)已经为大多数场合集,但调整一些设置,将有更多的收入。如果系统配置太低,内核日志检查错误消息将被提示升级的建议。在这里只涉及到配置最有可能削减在正常工作量非常丰厚的回报。更多调整配置的详细信息,请参阅Linux文档。

       缓冲区队列

       下面的设置与连接及其发展如何进行排队系统相关。如果传入连接速率很高,导致工作性能参次不齐(例如通过一些连接似乎停滞了),改变我们这些资源配置会有效。

        net.core.somaxconn:等待连接的队列的最大数量由NGINX可接受的数量决定。 默认值通常很低,但可以接受,因为NGINX接收连接非常快,但如果站点流量很大,则应该增加。 内核日志中的错误消息将提醒值太小,并更改该值,直到错误提示消失。

       注意: 如果这个值设置为512以上,那么相应地更改 nginx listen backlog 参数。

       net.core.netdev_max_backlog:增加提交给分组缓冲率CPU卡数据之前的值,高带宽性能可以得到改善。检查这一套核心日志文件中的错误,这个值是根据文档卡的建议进行修改。

       文件描述符

       文件描述符是操作管理系统进行资源,用于研究表示连接、打开的文件,以及一些其他企业信息。NGINX 每个连接方式可以通过使用两个重要文件描述符。例如,如果NGINX充当代理时,通常都是一个国家文件描述符表示客户端连接,另一个连接到代理服务器,如果我们开启了HTTP 保持连接,这个比例会更低(译注:为什么更低呢)。对于有大量数据连接技术服务的系统,下面的设置问题可能发展需要不断调整一下:

       sys.fs.file_max  - 系统级文件描述符限制

       nofile —— 用户管理级别进行文件信息描述符以及限制,在 /etc/security/limits.conf 文件中修改。

       临时端口

       当NGINX充当代理时,到上游服务器的每个连接使用一个瞬态或临时端口。 这些设置可能需要修改:

       端口值的起止范围。如果你发现用尽端口号,可以增大端口范围。一般端口号设置是1024到65000。

       调优NGINX配置

       以下是可以影响NGINX的性能有一定的说明。正如上面提到的,我们只讨论他的指令可以调整。建议指导下做不NGINX的球队,不调整其他指令。

工作进程

       NGINX可以通过运行多个国家工作发展进程,每个都可处理大量并发连接。可以有效控制研究工作进程数,用下面的指令管理以及它们的连接:

       worker_processes  -  NGINX工作进程数(默认值为1)。在大多数情况下,一个CPU核心运行工作进程最好建议这个指令可以设置为自动。有时你可能需要增加该值,如当工作进程需要大量的磁盘I / O的

     worker_connections —— 每个学生工作发展进程我们可以进行处理并发的最大连接数。默认值是512,但多数管理系统有充足的资源方面可以作为支撑更多的连接。合适的设置一个可以同时根据服务器的大小和流量的性质决定,可以选择通过分析测试修改。

       长连接

       长连接对性能有很大的影响,需要通过减少CPU和网络开销来打开或关闭连接。 NGINX终止所有客户端连接并创建到上游服务器的单独连接。 NGINx支持客户端和上游服务器长连接。 以下说明与客户长接有关:

       Keepalive ——单个客户端长连接可以发出的请求数量,默认值为100,但是当使用压力测试工具从客户端发送多个请求测试时,这尤其有用。

       keepalive_timeout—空闲长连接可以保持学生打开工作状态的时间。

       下面是和上游企业服务器长连接的相关工作指令:

       存活:每个工作过程空闲长连接到上游服务器保持打开的连接的数量。没有默认值。

       访问日志

       记录的每个请求会消耗CPU和I/O周期,一种可以降低企业这种环境影响的方式是缓冲访问日志。使用一个缓冲,而不是每条日志进行记录都单独执行写操作,NGINX会缓冲一连串的日志信息记录,使用单个技术操作把它们之间一起写到文件中。

       要启用访问日志的缓存,需要在access_log指令中=此参数的大小进行缓冲。 当缓冲区达到大小值时,NGINX将缓冲区的内容写入日志。 让NGINX在指定的时间之后写入缓存,并包含刷新=时间参数。 如果设置了这两个参数,则下一个日志条目超过缓冲值,或者如果缓冲区中的日志条目比设置的时间值长,则NGINX将该条目写入日志文件。 工作过程在重新打开其日志文件或退出时也会被记录下来。 若要完全禁用对日志的访问,请将access_log指令设置为关闭参数。

       Sendfile

       操作系统的 sendfile ()系统调用将数据从一个文件描述符复制到另一个文件描述符,通常是文件描述符,这加速了 tcp 数据传输。 要让 nginx 使用它,需要在 http、服务器或位置环境中包含 sendfile 指令。 Nginx 可以在不切换到用户模式的情况下将缓存或磁盘内容写入套接字,并且它可以非常快速地写入,消耗更少的 cpu 周期。 请注意,虽然可以使用 sendfile ()数据副本绕过用户状态,但这不适用于处理内容更改链和过滤器(如 gzip)的常规 nginx。 当配置环境中有一条发送文件指令和一条激活内容更改过滤器的指令时,nginx 会自动禁用 sendfile。

       限制

       可以设置多个限制条件,以防止用户占用过多的资源,避免影响系统性能和用户体验和安全性。下面是说明:

       limit_conn and limit_conn_zone—NGINX接受企业客户进行连接的数量以及限制,例如对于单个IP地址的连接。设置通过这些数据指令系统可以有效防止单个用户需要打开太多的连接,消耗超出他们自己的资源。

       limit_rate-传输到客户机响应于所述速度极限(为每个打开的多个客户机连接消耗更多的带宽)。设置这个限制阻止系统过载,以确保服务的质量更均匀到所有客户端。

       limit_req and limit_req_zone– NGINX处理数据请求的速度进行限制,与limit_rate有相同的功能。可以有效提高企业安全性,尤其是对登录信息页面,通过对用户使用限制以及请求速率问题设置这样一个科学合理的值,避免发展太慢的程序设计覆盖你的应用系统请求(比如DDoS攻击)。

       上游配置块中max_conns服务器指令参数。 上游服务器组中单个服务器接受的最大并发数。 使用此限制以防止上游服务器过载。 设置值为0(默认)表示没有限制。

       Queue (nginx plus)创建一个队列来存储超过其最大值限制的上游服务器上的请求。 此指令设置队列请求的最大值和返回错误之前的最大等待时间(默认值为60秒) ,这两个值是可选的。 如果忽略此指令,则请求不会排队。

       缓存和压缩可以提高性能

       NGINX的一些企业额外功能可用于通过提高Web应用的性能,调优的时候web应用技术不需要关掉,但值得我们一提,因为没有它们的影响学生可能很重要。 它们主要包括数据缓存和压缩。

       缓存

       缓存启用NGINX现场,一组Web或应用服务器的负载均衡,可以显著减少响应时间到客户端,而显著减少后端服务器的负载。缓存本身可以做一个专题的角度,在这里我们不要试图谈论它。见NGINX加上管理手册NGINX内容缓存。

       压缩

       所以我们使用一个更小的网络系统带宽。然而企业尽管压缩进行数据会消耗CPU资源,但当需要不断减少社会网络带宽使用时可以这样做非常重要有效。不过需要注意的是,不能对已压缩的文件再压缩例如JPEG 文件。有关研究更多的信息,请参阅“NGINX Plus管理工作指南”中的压缩和解压缩。

文章来源:http://www.rakceping.com/j24/

全部评论:0