zoukankan      html  css  js  c++  java
  • 性能优化nginx性能优化

    这段时间笔者几篇文章介绍了改性能优化的文章. 关联文章的地址

        

    nginx性能优化

        最近在测试服务器压力的时候,发明应用tornado的服务benchmark上不去,顶多1500左右,nginx即使开了8个进程,在响应请求的时候有一个work进程的cpu超高,达到100%的情况。

        对于cpu超高的情况,当初我们都以为是2.6.18网卡中断只能在一个cpu上处理,导致cpu高,这虽然是一个原因,但是短期内升级全部系统是一个不太可能的事件。

        鉴于官方说tornado性能很高,所以总觉得我们在某些地方应用有问题,看了nginx以及tornado的源码,发明有几个地方我们真没注意。

        

    • listen backlog,nginx默认的backlog是511,而tornado则是100,对于这类设置,如果并发量太大,因为backlog缺乏会导致大量的丢包。

      将nginx以及tornado listen的时候backlog改大成20000,同时须要调整net.ipv4.tcp_max_syn_backlog,net.ipv4.tcp_timestamps,net.ipv4.tcp_tw_recycle等相关参数。

    • accept_mutex,将其设置为off,nginx默以为on,是为了accept的处理惊群效应,但是鉴于nginx只有8个进程,同时并发量大,每个进程都唤醒都能被处理,所以关闭。

        每日一道理
    当浮华给予我们过多欺骗,现实中的虚假几乎让我们忘却了真的存在,是真情唤回了迷离的心,是真情带给了我们最纯、最真的感觉,它流露的是美的誓言,渗透的是永恒执著的真爱。

        做了上面简略的两个操作之后,ab benchmark发明nginx的cpu负载比拟均匀,同时不会涌现upstream request timeout以及cannot assign requested address等错误。

        同时,直接压tornado也第一次达到了4000的rps,通过nginx proxy到tornado则在3200左右。

        虽然只是修改了几个配置,性能就提升了很多,后续对于nginx,还有很多须要研讨的东西。

        版权声明:自由转载-非商用-非衍生-坚持署名 Creative Commons BY-NC-ND 3.0

    文章结束给大家分享下程序员的一些笑话语录: 面试官:熟悉哪种语言
    应聘者:JAVA
    面试官:知道什么叫类么
    应聘者:我这人实在,工作努力,不知道什么叫累
    面试官:知道什么是包?
    应聘者:我这人实在 平常不带包 也不用公司准备了
    面试官:知道什么是接口吗?
    应聘者:我这个人工作认真。从来不找借口偷懒
    面试官:知道什么是继承么
    应聘者:我是孤儿没什么可以继承的
    面试官:知道什么叫对象么?
    应聘者:知道,不过我工作努力,上进心强,暂时还没有打算找对象。
    面试官:知道多态么?
    应聘者:知道,我很保守的。我认为让心爱的女人为了自已一时的快乐去堕胎是不道德的行为!请问这和C#有什么关系??

    --------------------------------- 原创文章 By
    性能和优化
    ---------------------------------

  • 相关阅读:
    IntelliJ IDEA快捷键
    Find Minimum in Rotated Sorted Array
    爬取淘宝交易记录的爬虫
    MR并行算法编程过程中遇到问题的思考
    Map.Entry用法示例
    给定一组数和一个目标值,返回和为目标值的集合(集合中的元素可重复)
    位运算:获取集合的子集
    Linux每次开机都要source profile的解决办法
    mysql数据导入导出
    linux下nginx编译安装(抄别人的,方便查看)
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3102272.html
Copyright © 2011-2022 走看看