游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

关于Nginx的一些优化(突破十万并发)

  一般来说nginx配置文件中对优化比较有作用的为以下几项:workerprocesses8;
  nginx进程数,建议按照cpu数目来指定,一般为它的倍数。workercpuaffinity0000000100000010000001000000100000010000001000000100000010000000;
  为每个进程分配cpu,上例中将8个进程分配到8个cpu,当然可以写多个,或者将一个进程分配到多个cpu。workerrlimitnofile102400;
  这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimitn)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimitn的值保持一致。useepoll;
  使用epoll的IO模型,这个不用说了吧。workerconnections102400;
  每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为workerprocessesworkerconnections。keepalivetimeout60;
  keepalive超时时间。clientheaderbuffersize4k;
  客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getconfPAGESIZE取得。openfilecachemax102400inactive20s;
  这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓存。openfilecachevalid30s;
  这个是指多长时间检查一次缓存的有效信息。openfilecacheminuses1;
  openfilecache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive时间内一次没被使用,它将被移除。
  关于内核参数的优化:net。ipv4。tcpmaxtwbuckets6000
  timewait的数量,默认是180000。net。ipv4。iplocalportrange102465000
  允许系统打开的端口范围。net。ipv4。tcptwrecycle1
  启用timewait快速回收。net。ipv4。tcptwreuse1
  开启重用。允许将TIMEWAITsockets重新用于新的TCP连接。net。ipv4。tcpsyncookies1
  开启SYNCookies,当出现SYN等待队列溢出时,启用cookies来处理。net。core。somaxconn262144
  web应用中listen函数的backlog默认会给我们内核参数的net。core。somaxconn限制到128,而nginx定义的NGXLISTENBACKLOG默认为511,所以有必要调整这个值。net。core。netdevmaxbacklog262144
  每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。net。ipv4。tcpmaxorphans262144
  系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上。如果超过这个数字,孤儿连接将即刻被复位并打印出警告信息。这个限制仅仅是为了防止简单的DoS攻击,不能过分依靠它或者人为地减小这个值,更应该增加这个值(如果增加了内存之后)。net。ipv4。tcpmaxsynbacklog262144
  记录的那些尚未收到客户端确认信息的连接请求的最大值。对于有128M内存的系统而言,缺省值是1024,小内存的系统则是128。net。ipv4。tcptimestamps0
  时间戳可以避免序列号的卷绕。一个1Gbps的链路肯定会遇到以前用过的序列号。时间戳能够让内核接受这种异常的数据包。这里需要将其关掉。net。ipv4。tcpsynackretries1
  为了打开对端的连接,内核需要发送一个SYN并附带一个回应前面一个SYN的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYNACK包的数量。net。ipv4。tcpsynretries1
  在内核放弃建立连接之前发送SYN包的数量。net。ipv4。tcpfintimeout1
  如果套接字由本端要求关闭,这个参数决定了它保持在FINWAIT2状态的时间。对端可以出错并永远不关闭连接,甚至意外宕机。缺省值是60秒。2。2内核的通常值是180秒,2你可以按这个设置,但要记住的是,即使你的机器是一个轻载的WEB服务器,也有因为大量的死套接字而内存溢出的风险,FINWAIT2的危险性比FINWAIT1要小,因为它最多只能吃掉1。5K内存,但是它们的生存期长些。net。ipv4。tcpkeepalivetime30
  当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时。
  下面贴一个完整的内核优化设置:net。ipv4。ipforward0net。ipv4。conf。default。rpfilter1net。ipv4。conf。default。acceptsourceroute0kernel。sysrq0kernel。coreusespid1net。ipv4。tcpsyncookies1kernel。msgmnb65536kernel。msgmax65536kernel。shmmax68719476736kernel。shmall4294967296net。ipv4。tcpmaxtwbuckets6000net。ipv4。tcpsack1net。ipv4。tcpwindowscaling1net。ipv4。tcprmem4096873804194304net。ipv4。tcpwmem4096163844194304net。core。wmemdefault8388608net。core。rmemdefault8388608net。core。rmemmax16777216net。core。wmemmax16777216net。core。netdevmaxbacklog262144net。core。somaxconn262144net。ipv4。tcpmaxorphans3276800net。ipv4。tcpmaxsynbacklog262144net。ipv4。tcptimestamps0net。ipv4。tcpsynackretries1net。ipv4。tcpsynretries1net。ipv4。tcptwrecycle1net。ipv4。tcptwreuse1net。ipv4。tcpmem94500000915000000927000000net。ipv4。tcpfintimeout1net。ipv4。tcpkeepalivetime30net。ipv4。iplocalportrange102465000
  下面是一个简单的nginx配置文件:userwwwwww;workerprocesses8;workercpuaffinity00000001000000100000010000001000000100000010000001000000;errorlogwwwlognginxerror。logcrit;pidusrlocalnginxnginx。pid;workerrlimitnofile204800;events{useepoll;workerconnections204800;}http{includemime。types;defaulttypeapplicationoctetstream;charsetutf8;servernameshashbucketsize128;clientheaderbuffersize2k;largeclientheaderbuffers44k;clientmaxbodysize8m;sendfileon;tcpnopushon;keepalivetimeout60;fastcgicachepathusrlocalnginxfastcgicachelevels1:2keyszoneTEST:10minactive5m;fastcgiconnecttimeout300;fastcgisendtimeout300;fastcgireadtimeout300;fastcgibuffersize4k;fastcgibuffers84k;fastcgibusybufferssize8k;fastcgitempfilewritesize8k;4fastcgicacheTEST;fastcgicachevalid2003021h;fastcgicachevalid3011d;fastcgicachevalidany1m;fastcgicacheminuses1;fastcgicacheusestaleerrortimeoutinvalidheaderhttp500;openfilecachemax204800inactive20s;openfilecacheminuses1;openfilecachevalid30s;tcpnodelayon;gzipon;gzipminlength1k;gzipbuffers416k;gziphttpversion1。0;gzipcomplevel2;gziptypestextplainapplicationxjavascripttextcssapplicationxml;gzipvaryon;server{listen8080;servernamebackup。aiju。com;indexindex。phpindex。htm;rootwwwhtml;locationstatus{stubstatuson;}location。。(phpphp5)?{fastcgipass127。0。0。1:9000;fastcgiindexindex。php;includefcgi。conf;}location。。(gifjpgjpegpngbmpswfjscss)5{expires30d;}logformataccessremoteaddrremoteuser〔timelocal〕requeststatusbodybytessenthttprefererhttpuseragenthttpxforwardedfor;accesslogwwwlogaccess。logaccess;}}
  关于FastCGI的几个指令:fastcgicachepathusrlocalnginxfastcgicachelevels1:2keyszoneTEST:10minactive5m;
  这个指令为FastCGI缓存指定一个路径,目录结构等级,关键字区域存储时间和非活动删除时间。fastcgiconnecttimeout300;
  指定连接到后端FastCGI的超时时间。fastcgisendtimeout300;
  向FastCGI传送请求的超时时间,这个值是指已经完成两次握手后向FastCGI传送请求的超时时间。fastcgireadtimeout300;
  接收FastCGI应答的超时时间,这个值是指已经完成两次握手后接收FastCGI应答的超时
  时间。fastcgibuffersize4k;
  指定读取FastCGI应答第一部分需要用多大的缓冲区,一般第一部分应答不会超过1k,由于页面大小为4k,所以这里设置为4k。fastcgibuffers84k;
  指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答。fastcgibusybufferssize8k;
  这个指令我也不知道是做什么用,只知道默认值是fastcgibuffers的两倍。fastcgitempfilewritesize8k;
  在写入fastcgitemppath时将用多大的数据块,默认值是fastcgibuffers的两倍。fastcgicacheTEST
  开启FastCGI缓存并且为其制定一个名称。个人感觉开启缓存非常有用,可以有效降低CPU负载,并且防止502错误。fastcgicachevalid2003021h;6fastcgicachevalid3011d;fastcgicachevalidany1m;
  为指定的应答代码指定缓存时间,如上例中将200,302应答缓存一小时,301应答缓存1天,其他为1分钟。fastcgicacheminuses1;
  缓存在fastcgicachepath指令inactive参数值时间内的最少使用次数,如上例,如果在5分钟内某文件1次也没有被使用,那么这个文件将被移除。fastcgicacheusestaleerrortimeoutinvalidheaderhttp500;
  不知道这个参数的作用,猜想应该是让nginx知道哪些类型的缓存是没用的。以上为nginx中FastCGI相关参数,另外,FastCGI自身也有一些配置需要进行优化,如果你使用phpfpm来管理FastCGI,可以修改配置文件中的以下值:valuenamemaxchildren60value
  同时处理的并发请求数,即它将开启最多60个子线程来处理并发连接。valuenamerlimitfiles102400value
  最多打开文件数。valuenamemaxrequests204800value
  每个进程在重置之前能够执行的最多请求数。
  下面贴几张测试结果图。
  静态页面为我在squid配置4W并发那篇文章中提到的测试文件,下图为同时在6台机器运行webbenchc30000t600http:backup。aiju。com:8080index。html命令后的测试结果:
  使用netstat过滤后的连接数:
  php页面在status中的结果(php页面为调用phpinfo):
  php页面在netstat过滤后的连接数:
  未使用FastCGI缓存之前的服务器负载:
  此时打开php页面已经有些困难,需要进行多次刷新才能打开。上图中cpu0负载偏低是因为测试时将网卡中断请求全部分配到cpu0上,并且在nginx中开启7个进程分别制定到cpu17。
  使用FastCGI缓存之后:
  此时可以很轻松的打开php页面。
  这个测试并没有连接到任何数据库,所以并没有什么参考价值,不过不知道上述测试是否已经到达极限,根据内存和cpu的使用情况来看似乎没有,但是已经没有多余的机子来让我运行webbench了。囧

搭配华为海思麒麟芯片近期趋势海思麒麟990因M国强压台积电向华为断供海思麒麟芯片,而目前全球具有芯片制造虽然很多,但真正掌握了高端芯片(7nm以上)制造实力的就台积电和三星,三星与华为是老对手,两家在芯片领域合作的可能……环太平洋雷霆再起曝超燃大战全新预告预售全面开启由美国传奇影业、美国环球影业和善为影业联合出品的好莱坞科幻动作巨制《环太平洋:雷霆再起》发布了全新的超燃大战版预告,狂暴巨兽来势汹汹,新生代机甲驾驶员们操控升级机甲,火力全开拯……电影史前超人曝超人版凌厉海报鲜肉福利来袭电影《史前超人》日前正式宣布定档3月27日爱奇艺独播,这部历时一年后期制作的玄幻动作喜剧大片由关尔执导。已经累积14亿点击量的青春网剧《龙日一,你死定了》中的女一号张静美的扮演……毕业作品定档4。13警校毕业生张一山孤岛摸凶探案今日,由张一山、丁丁主演的青春、冒险、爱情电影《毕业作品》发布了人物定档海报。这次公布的海报中,灰黑色的背景给人一种青春悬疑的感觉,张一山侧身回首,眼神中带有些许坚毅,似乎正在……宝能科技园党委扎实开展党支部工作对先进群体和个人进行表彰自宝能成立以来,便始终坚持实业报国理想,全面推进制造宝能、科技宝能、民生宝能三大战略,现已发展成为涵盖高端制造、国际物流、综合开发、民生服务四大核心业务板块的大型现代化企业集团……环太平洋雷霆再起终极对决预告展现超悍大战由美国传奇影业、美国环球影业和善为影业联合出品的好莱坞科幻动作巨制《环太平洋:雷霆再起》今日发布终极对决版预告,超强巨兽大举进攻,超燃战队全力集结,超悍对决一触即发。激燃的音乐……神奇动物格林德沃之罪曝全球首款海报预告由《哈利波特》系列作者J。K。罗琳担任编剧,大卫叶茨执导的好莱坞魔幻冒险巨制《神奇动物:格林德沃之罪》日前重磅发布全球首款海报及预告。前作中各主要角色不仅在预告里悉数登场,更有……从海底捞老鼠门事件,看新媒体环境下的企业危机公关策略大家好,我是只为用户提升品牌价值的时代达信海底捞相信很多人都知道,有时与朋友聚餐也会选择海底捞,给小编印象比较深的是海底捞的服务,曾有人这样评价它们的服务,就是手上有一只……电影史前超人曝侯佩杉版女骑士海报超人CP亮相专为网络平台打造的电影《史前超人》日前正式宣布定档3月27日爱奇艺独播。这部历时一年后期制作的玄幻动作喜剧大片由关尔执导。青春校园网络剧《龙日一,你死定了》中的女一号张静美的扮……第九届金扫帚奖评委公布实名投票引期待第九届金扫帚奖经过一个多月的网络平台投票,所有奖项提名名单出炉。而最终获奖名单,将由专业人士和影评人组成的评委会从提名名单中实名投票产生,其结果将于2018年3月下旬举办的第九……张艺上深夜食堂上映在即感恩分享与梁家辉导演合照星关系8月29日讯在广大影迷的期盼声中,由影帝梁家辉首执导筒并领衔主演,魏晨、焦俊艳、郑欣宜、张艺上等主演的电影《深夜食堂》将于明日(8月30日)正式登陆影院,如今上映在即,观……爷爷的模样你还记得吗?520过昭关发布想念爷爷版海报预告星关系5月13日讯由浮光静影(佛山)影视文化有限公司出品,无锡江山如画影视文化有限公司、中盛创新(北京)文化传播有限公司联合出品,青年导演霍猛执导,杨太义、李云虎、万众等主演的……
长白时评新电商大会奏响心乐章展望欣未来创新驱动发展,智享数字未来,如果你想了解电商未来发展新趋势,10月9日,首届中国新电商大会,我们不见不散!一张张美丽的倒计时海报,让期盼的心激动;一篇篇关于新电商的文章,让梦想……怎么样才能把拍摄的竖屏视频转换成横屏视频?你好我是春风得意,谢谢邀请,这个问题剪映App可以邦你解决打开剪映,导入视频,点击比例,选择16比9,返回剪映首页点击剪辑,选择编辑,用手指缩放视频,达到自己……关心自己的肾健康?这只智能笔可以让你在家就能体检最近,极客之选体验了一款新的健康检测设备HiPee智能健康精灵S1菁英版(以下简称HiPeeS1),它能够检测6项尿检指标,而且体积小巧便携。从能测量心率的智能手表到便携……6。18活动,苹果12mini简单开箱趁着6月份的活动前奏,顺便开了一个88vip会员,价格上面几个平台大体上差不多。大家来简单的看看图。外包装是一体的减震包装,前几年在网上看到有这种减震概念的包装盒设计,现……iOS15正式版发布,苹果不再强制升级苹果在上周的秋季新品发布会后宣布,iOS15正式版系统将于9月21日推送。今天凌晨,iOS15正式版系统如约而至。值得一提的是,本次iOS15系统更新被单独放在了软……抢先体验小米电子温湿度计随着智能家居产品越来越丰富,可以进行的联动操作也越来越多,在舒适环境方面,实时监测室内的温度和湿度,联动空调,电暖器,加湿器等设备进行居家环境调节,就变得越来越方便今天,……千元机应该怎么选,可以看看这两款!价格便宜配置也不差iQOOU1xiQOOU1x的整体性能也是非常出色,并且通过数据也能够了解到它的外观厚度仅为8。41mm。并且在外观上iQOOU1x装配了6。51英寸的AMOLED屏幕,……iPhone13系列挤牙膏式升级,还是魅族18系列更值得买让人们期待已久的iPhone13系列终于发布了,此次,依旧只是挤牙膏式的提升,尽管iPhone13系列有的产品终于用上了120Hz的高刷,但这并没有激起多少用户的购买欲。因为国……瑞鹄模具可转债发行获证监会审核通过中证网讯(王珞)瑞鹄模具(002997)5月9日晚间公告,中国证监会发行审核委员会于2022年5月9日对公司公开发行可转债的申请进行了审核。根据审核结果,公司公开发行可转债的申……国内有哪些比较专业的数据平台或网站推荐?艾媒数据中心(data。iimedia。cn)是全球知名的新经济行业数据挖掘和分析机构iiMediaResearch艾媒咨询旗下行业研究数据库。基于自主研发6大数据处理系……假如华为,oppo,vivo,都把手机价格降下来,会把小米拖主要从宏观上回答。该问所预设的场景,是小米1家手机保持原价,其他3家手机与小米手机同价甚至低于,而4家手机的性能、配置、创新、技术自主度等等都没有变,各自还仍然坚决保证着……华为能否依靠鸿蒙打入欧美市场?在讨论这个问题之前我想卖个关子,华为能否打破美国垄断这个问题,关键一点是美国能否接受华为技术。其实华为自从在5G领域崛起以后,不断地遭受美国的技术、政治封杀;这不光是华为……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网