nginx为什么性能这么优越?

邀请回答
提问于 2020-05-08 16:39
497 次浏览
共4个回答

发表评论
  • 陶辉
    最佳答案
    2020-05-20 19:47

    所谓性能好,一般指2点:低时延、高并发,由这2点会带来高吞吐量,也就是百万级的QPS。

    我先说低时延是怎么办到的:

    1、Nginx内部的算法都非常优秀,是性能优先的。

    比如hash表会考虑cpu cache line(参见https://www.nginx-cn.net/article/71),比如location匹配是基于URI规则封装的多叉树(参见https://www.nginx-cn.net/article/69)。


    2、Nginx充分使用了OS的各种高性能特性

    比如Linux的reuseport、accept_defer、lingering_close、sendfile、aio等等。


    再说高并发是怎么达到的:

    1、每个请求占用的内存极为有限

    每个连接占用的基本内存不过几百字节,这需要很深厚的功力,也只有C语言才能办得到。


    2、基于事件驱动的多路复用框架

    这个已经说烂了,就不多说了

    4
    回复
    举报
  • 头号游戏教父B哥
    2020-05-20 16:15

    说多了就一句话,充分利用系统的特性。

    以 Linux 为例,

        在 Linux 中的多进程,epoll 模型, reuseport, send_file ....都是高并发的利器

    1 多进程让所有核心都在干活,而不是划水

    2 epoll 模型让每个核心都干它值得干的事情(相对 select/poll,减少不必要的轮询)

    3 reuseport 解决狗界难题-惊群

    4 。。。未完待续

    1
    回复
    举报
  • 13191816265@qq.com
    2020-05-08 16:50

    因为C语言编写的

    1
    回复
    举报
    • 黄阿马 2020-05-21 16:12
      您这句话倒是简单粗暴啊
      0
      回复
      举报
  • 你猜我不猜
    2020-05-08 16:40

    同问,坐等回答

    0
    回复
    举报
提问者

繁星

暂无个人介绍

  • 0

    文章

  • 7

    粉丝

  • 1

    被赞

繁星
按Enter键发送
您已邀请位用户
版权所有©F5 Networks,Inc.保留所有权利。京ICP备16013763号-5