文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

我们聊聊 Nginx 负载的参数优化,你学会了吗?

2024-11-29 18:25

关注

以下是一些基于搜索结果的 Nginx 负载参数优化经验分享。

No.1 Worker Processes

"""nginx
worker_processes auto; # 自动设置与 CPU 核心数相同的进程数
"""

这个指令用来设置 Nginx 运行的工作进程数。通常情况下,每个 CPU 核心分配一个工作进程可以取得较好的性能。

No.2 Worker CPU Affinity

"""nginx
worker_cpu_affinity 0001 0010 0100 1000; # 为每个工作进程分配特定的 CPU 核心
"""

通过为每个工作进程分配特定的 CPU 核心,可以提高 CPU 缓存的效率,减少进程间的上下文切换。

No.3 Worker Connections

"""nginx
worker_connections 10240; # 每个工作进程的最大连接数
"""

这个指令定义了每个工作进程可以打开的最大连接数,默认值通常是 512,但现代服务器硬件通常可以处理更高的连接数。

No.4 Events Configuration

"""nginx
use epoll; # 在 Linux 上使用高效的 I/O 多路复用模型
events {
worker_connections 10240; # 每个工作进程可以同时处理的连接数
}
"""

`use epoll;` 指定了事件处理模型,在 Linux 系统上,epoll 是一个高性能的 I/O 多路复用模型。

No.5 Sendfile

"""nginx
sendfile on; # 开启高效文件传输模式
"""

`sendfile` 指令用于启用高效文件传输模式,可以减少 CPU 开销,因为它允许操作系统直接传输文件数据到网络,而不需要复制到用户空间。

No.6 TCP Nopush

"""nginx
tcp_nopush on; # 结合 Sendfile 使用,减少网络报文段的数量
"""

`tcp_nopush` 指令用于确保数据在发送到网络之前被缓存,与 `sendfile` 结合使用可以提高网络传输效率。

No.7 Keepalive Timeout

"""nginx
keepalive_timeout 65; # 长连接超时时间
"""

`keepalive_timeout` 设置了长连接的超时时间,可以根据服务器的业务需求进行调整。

No.8 Gzip Compression

"""nginx
gzip on; # 开启 Gzip 压缩
gzip_min_length 1k; # 页面字节数小于 1k 不压缩
gzip_buffers 4 32k; # 设置压缩缓冲区大小
gzip_http_version 1.1; # 设置压缩版本
gzip_comp_level 6; # 设置压缩级别
gzip_types text/css text/xml application/javascript; # 设置需要压缩的 MIME 类型
"""

通过启用 Gzip 压缩,可以减少传输的数据量,加快页面加载速度。但要注意,对小文件进行压缩可能不会减少其大小。

No.9 Proxy Settings

"""nginx
proxy_connect_timeout 90; # 代理连接超时时间
proxy_send_timeout 90; # 代理发送超时时间
proxy_read_timeout 90; # 代理读取超时时间
proxy_buffers 4 32k; # 设置代理缓冲区大小
"""

这些指令用于调整代理服务器的超时设置和缓冲区大小,可以根据后端服务器的性能进行调整。

No.10 Linux System Tuning

"""shell
net.core.somaxconn = 262144 # 调整系统同时发起的tcp连接数
net.ipv4.tcp_tw_recycle = 1 # 启用 TCP 连接重用
net.ipv4.tcp_fin_timeout = 15 # 减少临时端口的等待时间
"""

调整 Linux 系统内核参数可以提升服务器的网络性能。

No.11 Access Log Buffering

"""nginx
access_log /var/log/nginx/access.log main buffer=16k flush=5m; # 使用缓冲区记录访问日志
"""

通过设置日志缓冲区,可以减少磁盘 I/O 操作,提高性能。

No.12 Limitations

"""nginx
limit_conn perip 2; # 限制单个 IP 地址的连接数
limit_rate 300k; # 限制单个连接的速率
"""

使用 `limit_conn` 和 `limit_rate` 可以限制客户端的连接数和带宽使用,防止单个客户端占用过多资源。

来源:IT那活儿内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯