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

网站的优化技术建议

  CSDN:Https优化方案与测试结果
  背景
  https是基于http和ssl(安全套接字层)的安全传输协议,使用ssl协议作为会话层协议。这个协议最早是由网景公司开发,但是随着网景的没落,现在由ietf负责维护,最初的版本也已经重新冠名(rebanded)tls(安全传输层协议)1。0(1999年)。因此现在大部分协议是基于TLS的,尽管是相似的东西。
  针对https,能够保证数据更加安全,但是副作用是访问会变慢(相对于http),因为服务端增加了更多的计算,客户端和服务端之间多了一层协议协商过程。因此,我们要做的优化主要是针对这里
  优化点和优化方案
  大概阐述了优化的几个方向,下面我来具体的展开讨论下。如有疏漏请指正。
  同时,我也整理了一份针对https的握手过程详解,可以帮助大家科普下。
  客户端优化
  客户端优化是针对发起sslclienthello的一端进行的优化。主要有两个大的方向:
  减少请求次数,提高效率
  优化加密效率
  规避完整握手
  针对减少请求次数,主要的一个点是SSLSession的复用,ClientHello请求中的SessionID可以唯一的区分一个ssl会话的ID。这个ID在ClientSayHello的时候被填写,
  如果是第一次与server发生会话,那么SessionID可以是空。如果之前与ssl服务器建立过会话,而且客户端开启了SessionTicket;并且Servercache了这个SessionTicket的时候,服务端与客户端的握手就会简化,省略掉premaster交换的过程,直接复用之前的ssl会话
  优化加密效率
  这里是一个比较复杂的点,我们先来看下有哪些过程可能耗时:
  密钥协商阶段的非对称加密
  协商过后的针对通信的对称加密
  协商密钥阶段
  密钥协商过程中,客户端的计算量相对小:
  生成random1
  生成premaster(填充过的随机数)
  根据服务端的random2和自己的random1还有premaster生成mastersecret
  使用服务端通知的(经过验证的)公钥加密premaster
  这个过程中大部分是在生成随机数,只有生成mastersecret和使用公钥加密是消耗cpu的。
  加密通信阶段
  再看下ssl协商之后的过程中的加密方式,因为是采用之前协商后的secret来进行对称加密通信,因此这里的加密算法显得尤为重要,基本上协商ssl之后的过程中一直会使用这个算法在进行加密和解密。目前采用的大部分是AES128位密钥的方式,但是在某些不支持硬件AES加速的处理器上,性能还是有一定的限制
  另一种加密方式是chacha20。
  ChaCha20Poly1305是Google所采用的一种新式加密算法,性能强大,在CPU为精简指令集的ARM平台上尤为显著(ARMv8前效果较明显),在同等配置的手机中表现是AES的4倍(ARMv8之后加入了AES指令,所以在这些平台上的设备,AES方式反而比chacha20Poly1305方式更快,性能更好),可减少加密解密所产生的数据量进而可以改善用户体验,减少等待时间,节省电池寿命等。
  因此作为一个可选的方案,chacha20可能对于一些老旧的机型(据连荣讲,还有很多在使用armv7的硬件),chacha20更具优势。
  服务端优化
  服务端的优化有几个方向
  规避完全握手
  优化加密效率
  优化证书验证流程
  因为针对的是ssl服务端优化,所以下面结合我们常用的httpserverNginx(Tenginx)来详细的讨论下优化点
  规避完整握手
  服务端规避完全握手也是通过回复会话的方式,但是对于如何成功命中SessionID恢复会话,有两个点:
  开启sessionticket
  配置sessioncache
  对于1来说,服务端基本都会开启。对于nginx来说,sessionticket默认就是开启的状态。
  sessioncache这里就会涉及到很多问题。当前互联网场景下,大部分web服务采取了分布式的服务方式。如何共享sessioncache使得经过负载均衡的请求无论落到哪个节点都可以命中cache就是我们的一个目标。限于篇幅和验证的目的,这里就不做过多的展开。附带一篇文章可以了解
  在这里我们先配置sessioncache参数和cache过期时间。确保单机可以命中cache
  优化加密效率
  第一个阶段是我们ssl握手中的重点阶段,根据资料,密钥协商阶段基本占据了90的时间。
  在没有办法规避完全握手的时候,我们要尝试进行算法的优化。目前来看可以采用的非对称加密方式大约有以下的选择:
  RSA:算法实现简单,诞生于1977年,历史悠久,经过了长时间的破解测试,安全性高。缺点就是需要比较大的素数(目前常用的是2048位)来保证安全强度,很消耗CPU运算资源。RSA是目前唯一一个既能用于密钥交换又能用于证书签名的算法。
  DH:diffiehellman密钥交换算法,诞生时间比较早(1977年),但是1999年才公开。缺点是比较消耗CPU性能。
  ECDHE:使用椭圆曲线(ECC)的DH算法,优点是能用较小的素数(256位)实现RSA相同的安全等级。缺点是算法实现复杂,用于密钥交换的历史不长,没有经过长时间的安全攻击测试。
  ECDH:不支持PFS,安全性低,同时无法实现falsestart。
  针对业内的选择,大部分是使用RSA加密的方式椭圆曲线优化的DH加密
  百度的加密算法:TLSECDHERASWITHAES128GCMSHA256,128位秘钥TLS1。2
  google的加密算法:TLSECDHERASWITHAES128GCMSHA256,128位秘钥TLS1。2
  因此我们可优化的空间不太大,目前来看有两个优化点:
  针对椭圆曲线,选择更高效优化过的曲线模型。调优openssl编译参数。
  采用硬件加速的方式来优化,这就涉及到采用加速卡或专门硬件。
  优化证书验证OCSP
  证书验证是客户端验证服务端的过程。
  通常服务端会发送site的证书,这个证书是由可信机构签发的。clent在认证这个证书的时候,会先向可信机构查询站点证书的上一级中间证书的权威。然后再查询中间证书对应的根证书的权威。这个过程就是证书链查询
  OCSP是server把自己的站点证书和中间证书以及根证书打包一起下发到客户端,省去客户端查询的过程。
  测试中,我们使用了域名varycloud。com,这个域名对应申请了symentic证书。我们生成了相关的证书链。
  测试
  测试方案
  采用压力测试的方式,对比不同配置下,相同压力服务端的服务能力和延迟表现。
  服务端配置
  CPUInfoE56核心12线程(超线程)
  vendorid:GenuineIntel
  cpufamily:6
  model:62
  modelname:Intel(R)Xeon(R)CPUE52620v22。10GHz
  stepping:4
  microcode:0x428
  cpuMHz:1331。367
  cachesize:15360KB
  RAM8G2
  ArrayHandle:0x0032
  ErrorInformationHandle:NotProvided
  TotalWidth:72bits
  DataWidth:64bits
  Size:8192MB
  FormFactor:DIMM
  Set:None
  Locator:DIMMA1
  BankLocator:DIMMA1
  Type:DDR3
  TypeDetail:Registered(Buffered)
  Speed:1333MHz
  Manufacturer:Kingston
  SerialNumber:43153456
  AssetTag:DIMMA1AssetTag
  PartNumber:9965433091。A00
  NCI万兆网卡
  Ethernetcontroller:IntelCorporation82574LGigabitNetworkConnection
  Advertisedpauseframeuse:No
  Advertisedautonegotiation:Yes
  Speed:1000Mbs
  Duplex:Full
  Port:TwistedPair
  PHYAD:1
  Transceiver:internal
  Autonegotiation:on
  MDIX:off(auto)
  SupportsWakeon:pumbg
  Wakeon:g
  Linkdetected:yes
  测试服务器版本
  nginxversion:nginx1。10。2
  压测工具wrk
  wrk是一款压测工具,基于c开发
  https:github。comwgwrk
  测试使用24线程保持24链接压测1分钟获得数据
  nginx配置
  server{
  listen443ssl;
  servernamevarycloud。com;
  accesslogoff;
  sslcertificatecert。pem;
  sslcertificatekeycert。key;
  sessiontacketsessioncacheoption
  sslsessiontimeout1d;
  sslsessioncacheshared:SSL:50m;
  sslsessionticketson;
  sslsessionticketkeytlssessionticket。key;
  DiffieHellmanparameterforDHEciphersuites,recommended2048bits
  ssldhparampathtodhparam。pem;
  sslprotocolsTLSv1TLSv1。1TLSv1。2;
  sslciphersECDHERSAAES256SHA384:AES256SHA256:RC4:HIGH:!aNULL:!MD5;
  sslpreferservercipherson;
  HSTS(ngxhttpheadersmoduleisrequired)(15768000seconds6months)
  addheaderStrictTransportSecuritymaxage15768000;
  认证证书链
  OCSPStapling
  fetchOCSPrecordsfromURLinsslcertificateandcachethem
  sslstaplingon;
  sslstaplingverifyon;
  resolver114。114。114。1148。8。8。88。8。4。4223。5。5。5valid300s;
  resolvertimeout5s;
  ssltrustedcertificatechain。pem;
  location{
  roothtml;
  indexindex。htmlindex。htm;
  }
  基准测试过程
  测试使用是
  172。16。200。11(client)
  172。16。200。21(server)
  两台机器之间延迟大约在0。2ms左右
  64bytesfrom172。16。200。21:icmpseq1ttl64time0。186ms
  64bytesfrom172。16。200。21:icmpseq2ttl64time0。229ms
  64bytesfrom172。16。200。21:icmpseq3ttl64time0。204ms
  原始数据
  针对未开启任何优化的测试数据,作为对比的基础。对于请求主动关闭这种情况测试了两次
  不主动关闭链接
  。wrkc24t24d3mhttps:varycloud。com
  Running3mtesthttps:varycloud。com
  24threadsand24connections
  ThreadStatsAvgStdevMaxStdev
  Latency0。92ms3。07ms170。27ms96。54
  ReqSec1。73k248。312。64k69。64
  7448946requestsin3。00m,2。25GBread
  Non2xxor3xxresponses:7448946
  Requestssec:41360。72
  Transfersec:12。78MB
  每次请求链接关闭
  。wrkc24t24d3mHConnection:Closehttps:varycloud。com
  Running3mtesthttps:varycloud。com
  24threadsand24connections
  ThreadStatsAvgStdevMaxStdev
  Latency4。76ms8。34ms174。25ms97。01
  ReqSec51。9110。4890。0069。50
  223479requestsin3。00m,67。99MBread
  Non2xxor3xxresponses:223479
  Requestssec:1240。95
  Transfersec:386。58KB
  开启sessionticket和sessioncache
  。wrkc24t24d3mhttps:varycloud。com
  Running3mtesthttps:varycloud。com
  24threadsand24connections
  ThreadStatsAvgStdevMaxStdev
  Latency468。71us2。69ms160。11ms99。67
  ReqSec2。60k343。143。50k71。52
  11189348requestsin3。00m,3。38GBread
  Non2xxor3xxresponses:11189348
  Requestssec:62148。92
  Transfersec:19。20MB
  。wrkc24t24d3mHConnection:Closehttps:varycloud。com
  Running3mtesthttps:varycloud。com
  24threadsand24connections
  ThreadStatsAvgStdevMaxStdev
  Latency1。71ms10。17ms165。85ms98。78
  ReqSec360。0653。23545。0082。35
  1544216requestsin3。00m,469。78MBread
  Non2xxor3xxresponses:1544216
  Requestssec:8574。25
  Transfersec:2。61MB
  相比基准数据提升大约49和64
  开启ECDHsessionticket
  。wrkc24t24d3mhttps:varycloud。com
  Running3mtesthttps:varycloud。com
  24threadsand24connections
  ThreadStatsAvgStdevMaxStdev
  Latency405。62us558。95us37。73ms97。87
  ReqSec2。61k349。923。57k71。27
  11200203requestsin3。00m,3。38GBread
  Non2xxor3xxresponses:11200203
  Requestssec:62206。96
  Transfersec:19。22MB
  。wrkc24t24d3mHConnection:Closehttps:varycloud。com
  Running3mtesthttps:varycloud。com
  24threadsand24connections
  ThreadStatsAvgStdevMaxStdev
  Latency1。28ms7。68ms166。22ms99。27
  ReqSec361。2346。59545。0079。26
  1549916requestsin3。00m,471。52MBread
  Non2xxor3xxresponses:1549916
  Requestssec:8606。01
  Transfersec:2。62MB
  相比基准数据提升大约56和72。9
  相比开启sessionticket提升大约13。4和25。1
  开启OCSPsessionticket
  。wrkc24t24d3mhttps:varycloud。com
  Running3mtesthttps:varycloud。com
  24threadsand24connections
  ThreadStatsAvgStdevMaxStdev
  Latency538。57us3。79ms162。60ms99。62
  ReqSec2。61k369。003。55k74。30
  11219121requestsin3。00m,3。38GBread
  Non2xxor3xxresponses:11219121
  Requestssec:62318。07
  Transfersec:19。25MB
  。wrkc24t24d3mHConnection:Closehttps:varycloud。com
  Running3mtesthttps:varycloud。com
  24threadsand24connections
  ThreadStatsAvgStdevMaxStdev
  Latency0。91ms4。58ms162。55ms99。61
  ReqSec368。1240。66540。0074。09
  1582284requestsin3。00m,481。37MBread
  Non2xxor3xxresponses:1582284
  Requestssec:8785。82
  Transfersec:2。67MB
  相比基准数据提升大约41和80
  相比开启sessionticket后的数据提升大约14。8和46。8
  测试中资源消耗变化图
  cpu资源变化图从左至右对应4种测试情况:
  raw,sessionticket,ECDHsessionticket,OCSPsessionticket
  这里写图片描述
  对于sessionticket命中,cpu消耗降低了很多
  网络消耗如下
  这里写图片描述
  由于sessionticket命中,节约了cpu计算资源,因此服务能力有了提升,贷款增加明显
  测试总结
  数据已经能很明确的说明问题了,简单总结下:
  sessionticket可以简化握手,更重要的是,减少了服务端的计算量,如果能命中并且复用sessionticket,会有很大的优化
  ECDH对于生成密钥有提升,而且消耗的资源并不太明显
  OCSP测试中有一定的抖动,但是总体趋向于降低了时延
  疑惑
  测试过程中,出现了一定的抖动。每次测试的结果都有一定的抖动,这个是困惑的点,还没有找到原因

石油造句用石油造句大全91布莱克市长辞去了石油公司总裁的职务,以避自肥之嫌。92我国新闻出版业每年上交国家的纯利润在全国生产行业中,仅次于石油、电信等产业部门。93海鸠们潜到海水里去,间……孙权是不是三国中性格最开明的皇帝其实孙权晚年也开东吴一直都是被称为人和的地方,其中最重要的一个原因就是孙权处事比较大度开明,使得东吴上下长期以来人心没有发生太大变化,大家始终还是能团结到一起。以至于曹操也非常欣赏孙权的性格,……大选造句用大选造句大全(31)网站发现,这两位有可能在2012年美国总统大选中交锋的政界人士都和史密斯先生有血缘关系。史密斯是一位新教牧师,也是马塞诸塞州的早期定居者。(32)在10月大选前,……小米平板和小米平板哪个好小米平板5系列发布后,很多人冲价格都想入手,而小米平板5和小米平板5pro入手哪个会更好呢?这个得看个人需求,500元的差距,小米平板5pro性能上会有所提高,具体小米平板5和……维纳斯造句用维纳斯造句大全31,一个晚上,他冲动地亲吻了她,她就有了生命,并显露自己是爱神维纳斯。32,在朱诺、密涅瓦和维纳斯之间怎样才能做出选择呢?33,她微微屈一下膝,这个柔美的姿势在米……初秋职场女士通勤款发型打造清新风到了秋天,终于不用再因为怕热出汗而把头发扎得又紧又高啦,你可以放心的放下柔顺的长发,随性地散落在肩头,任秋日的晚风轻轻吹拂你的长发,给自己换个深棕色或是咖啡色的发色,再搭配性感……浅析企业财务风险识别机制摘要:在市场经济条件下,企业在运行中会受到外部风险与内部风险的双重威胁,而在内部风险中,财务风险则往往是企业破产倒闭的直接因素。因此全面了解财务风险的种类并建立有效地识别机制,……华伦天奴春夏高定女装歌剧院里的优雅与浪漫华伦天奴2014春夏高定女装歌剧院里的优雅与浪漫全球顶级奢侈品牌华伦天奴(Valentino)2014年春夏高定系列女装设计灵感绝大多数源自歌剧,但同时也带来了许多自然有……如何缓解晕船坐船旅行的时候,如果身边有人晕船,看他她呕吐难受,脸色发白,自己也心痛。从医学上说,晕车、晕船和晕机统称为晕动病。那么,如何缓解晕船呢?在此,本站特献上6种治疗晕船的方法,希望……孕期双腿浮肿怎么办个点子可缓解孕期浮肿是正常的一种现象,孕妈妈只要做好预防,平时多休息,就可以有效缓解了,分娩之后浮肿的症状就会消失。孕期水肿饮食注意事项1、要适当的控制水分:在如果孕妈妈有严重……如何改良园林绿地土壤在园林施工工程中,通过土壤改良来为园林植物创造良好的生长环境,是提高施工质量的重要环节,也是提高园林植物成活率的关键工序。在改良园林绿地土壤之前,首先要知道种植的植物喜好什么样……抢购造句用抢购造句大全(121)那时候的阿香就充当撬边(假扮的买客)的角色,说起来也很简单,那就是在有人的时候佯装抢购,而没人的时候就将裤子悄悄放回,再取回钱币。(122)历届奥运会徽吉祥物金……
人生中的第一次在许多的第一次中,我最难忘的就是升旗仪式的那一次了。随着乐曲的响起,我和曾欣肩并肩走向主席台。哇!站在台上整个操场尽收眼底,好大一个场面。所有学生都穿着白色校服,系着红领……给水课脱水要改革教师评价机制新学期,记者探访部分高校课堂,发现与选课时热火朝天的景象相比,不少学生费尽心力才抢来的通识课堂上,却是一片死气沉沉。有大学生表示,几乎每所大学都会流传一本水课大全,选课关键就是……决胜高考再创辉煌高三物理备考复习计划高三物理备考复习计划一、指导思思:认真贯彻学校和年级决胜2020年高考,再创灵中高考辉煌的奋斗目标,以各阶段教学增分为主线,把握考纲要求,努力提高复习备考效率,全面完成高……听那动人的声音咔嚓一声,闪光灯亮起,我顺手遮住眼睛。来,来,给你拍张照,以后再想拍就拍不着了。你听听快门摁下去的声音多好听!爸爸瞪大眼睛死死盯住我,似乎一下子要把我彻底征服。什么嘛,明……螃蟹多久脱一次壳为什么会脱壳螃蟹脱壳间隔的时间并不固定,短的话两个星期左右就会脱一次壳,长的话两个月左右才会脱一次壳。螃蟹两次脱壳间隔的时间跟它们的发育状态以及外界环境的适宜程度有关。若是螃蟹的生长状态比……众所周知用人单位订立无固定期限劳动合同三大要求无固定期限劳动合同是指用人单位与劳动者约定无确定终止时间的劳动合同,只要没有出现法定解除情形或者双方协商一致,双方就要继续履行劳动合同。在何种情形下劳动者可以要求用人单位订立无……补血补铁的食疗方呵护你做健康女人银耳15克,红枣30克,大米100克。将银耳去蒂、洗净、浸泡,红枣去核。大米洗净后加适量水与银耳、红枣同煮。每日服食,早晚各1次,每次150毫升。此粥能健脾、化生气血,适宜于贫……破了造句用破了造句大全121、三是1904点,是极限位,破了这个点,笔者不问青红皂白坚决清仓,也可以说反弹已经结束。122、把别人的书撕破了,你就用胶水粘好,再用书皮包上,就算是将功补过吧!……少女时代流行发型大比拼你最喜欢哪款呢SUNNYamp;amp;权侑莉SUNNY:从以往的秀丽长发,到转变至今的蓬松短发,形象也大为转变。一下从甜心俏丽转向成熟干练,短发为其大大加分。漂染的染发造型加上侧刘海……如何写个好需求说烂了的课题你真的懂了吗本人阿里产品狗一枚,在摸爬滚打的发现需求,写PRD,评审,开发上线的无尽轮回中反思,并结合一些相关的产品书籍,整理了自己的方法论和各位分享。文章将依次介绍:需求和需求文档……老婆的威严女儿睡懒觉到了饭点也没起来,我便去叫:宝贝,起床了,太阳都晒屁股了!听见我的声音,女儿动也没动,支支吾吾的回了一句:老爸,别逗了!没看见我盖着被子吗?女儿说完继续睡觉,任……浅谈石油企业政工管理的创新发展摘要:随着我国社会主义市场经济体制的改变,目前我国的石油企业面临着在制度上的不断改革、制度上的不断推进。目前,在我国石油企业的运营体制、发展方向和管理模式等很多方面都发生了很大……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网