ng-高性能

本文探讨了ng为何在高性能方面被广泛采用,主要介绍了三个关键技术:1)采用IO多路复用epoll模型解决高并发下的IO阻塞问题;2)CPU亲和性(affinity)通过绑定worker进程到特定CPU减少资源消耗;3)sendfile机制在处理静态文件时提高性能,减少上下文切换。这些优化策略帮助ng在处理网络请求和静态内容分发时表现出色。
摘要由CSDN通过智能技术生成

ng具备的优势,其他的服务也在采用,而且ng在功能全面上并不占优势,那么为什么ng会被很多企业采用。
首先,ng的高性能是企业最常使用的,而且也是最需要的。
其次,ng具备优轻量级势。

那么,我们先说说高性能的优势。

一,采用IO多路复用epoll模型

1.什么IO复用
在这里插入图片描述
比如http请求到应用程序的时候,网卡接收后会转化成Socket流,一个Socket流就是对应IO流,计算机开始的时候并不是很智能,基本是一个http请求,转化成一个Socket流,一个Socket流对应一个IO流,一个CPU单核也这么完,那么多个http请求呢,高并发呢,多个IO,单核一个线程也只能让其阻塞,慢慢处理,虽然现在cpu是多核,那也不能支持百万并发,IO阻塞的问题不能依靠硬件的升级解决,所以底层系统对IO重新设计了。也就是通过多路复用来监听多种描述符,如果其中任意一个描述符处于就绪的状态,就会返回消息给对应的进程通知其采取下一步的操作,这就是IO复用的机制。

在linux中,关于多路复用的使用,有三种IO模型有三种:select、poll和epoll。

在这里插入图片描述

(1)Select
目的:优化IO阻塞问题
通过监听IO流,轮询出来所有的流,分类出读数据、写数据的流,并对他们进行操作。

 int select(int nfds, fd_set *readset, fd_set 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值