让网站打开速度的办法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
让网站打开速度的办法

谈到速度(参考物和例子稍后一起提),我们首先能想到的事物有:服务器机器性能 服务器机房带宽资源 服务器软件性能 DNS查询速度 页面资源压缩(服务端+客户端) 页面提供资源数量 页面资源加载时机 用户终端某时刻性能 用户终端浏览器性能 用户直观感受 [附加]异常流量情况 如果有兴趣,不妨和我一起逐一聊聊吧: 说到服务器性能,可能多数人会停留在几核几G几百G这种概念上,但是对于网站服务器,我们关注的应该是单机/VPS的数字运算能力和IO读写能力,如果不是单机服务器,那么请关注自己实际能使用的资源数量,尤其是高峰时刻,具体请参考VPS虚拟化常见方案:OpenVZ/Xen/KVM/VMWare/Hyper-V等方案在其他实例占用CPU过高的时候,对其他实例的影响(部分虚拟化方案,会因为某些实例锁死时间片而使用过高影响其他实例)。 就博客/网站主来说,我们应该使用尽可能更好的资源,但是非土豪的话,资源好到什么程度呢,答曰:够用。 够用是什么程度呢,满足最大的调用程度,且有余力。 这个“有余力”是你对网站/应用的访问量有评估后,并进行压测,观察机器负载得到的。 如果你的网站有大量文件IO/数据库读写操作,那么为了保证最佳性能,不妨尝试使用SSD,或者进行内存缓存等操作,一旦你使用内存缓存,那么整体的性能瓶颈多数情况下会从机器整体性能变为网卡/带宽,是不是可喜可贺。 在正确设置服务器软件配置以满足自己需求场景后,如果你对运行程序优化得当,那么最佳体验应该是内存有30%cache,swap占用极少,或不占用,负载0.5以下。(以防突发流量) 说到压测,不得不继续说下面的话题了。 带宽资源或许是除了高端存储设备外,价格最贵的资源之一了。所以,评估带宽是否满足你的站点,是特别重要的事情。 一般来说小站点,1~2M的带宽绝对够用。如果不知道你的机器的带宽能力,不妨登录机器后台观察流量图峰值,或者机器安装speedtest-cli,来进行数据收集。 诸如我用过的机器,突发状况下能力为: 观察两者,会发现前者上传比较大,嗯,没错,服务器的上行带宽,即是我们常说的网站带宽,一般而言,此数值越大,提供的访问能力就越强。 但是,综合现实因素,诸如政策和地理位置的原因,网站响应速度和机房有重大关系,比如,BGP机房线路智能负载后的响应时间可以达到10ms甚至以下,或者你可以尝试ping一下自己的本地服务器,响应时间感人,但是在祖国大地,如果你直接访问一些美帝国或者欧洲大陆机房则可能速度会增大几十到几百倍,甚至出现访问不能的状况。 基于这个状况,如果你的网站的受众包括国外友人,那么你的选择: 国内无所谓,自己能访问就好,国外快快的: 美帝机房/加拿大机房/日本机房/韩国机房/欧洲机房 国内国外速度相对快的机房 港澳台机房/日本机房/韩国机房/欧洲机房 国内快速,国外可能访问不了的机房 各省市机房/学校机房/港澳台机房 当然,你也可以根据自己情况选择CDN加速方案: 国内机房+国内外CDN 国外机房+国内外CDN 当然,如果你和我的网站一样,是一个自己的无事写几笔的小站,那么选择国内的阿里云,或者香港机房都是不错的选择。 硬件说完了,我们聊聊第一节中提到的软件。 “尺有所短,寸有所长”,软件也是一样,小站点,资源有限的情况下: 如果你以前使用apache,且没有使用一些三方模块,或者不需要使用apache软件套装里的高级功能,或者没有软件必须依赖apache,以及三方模块能在nginx中找到替代的,可以考虑替换为nginx。 如果你的程序允许实现数据库缓存/站点内容缓存,但是没有使用缓存的,请开启缓存功能。 如果你的程序使用了文件缓存,在内存资源有富裕的情况下,请使用内存缓存(自己考虑缓存策略)。 如果你的程序原来的运行环境执行速度不够快,那么请考虑升级或运行环境,诸如php5.2-php.5.6+,或者php5.6-hhvm 3.x,asp/php-nodejs。 如果你的程序中多数功能你用不到,考虑使用更轻便的小程序。 如果你启用了缓存,且数据库(关系数据库)读取热数据频率高于冷数据,且访问量不是特别大,不需要考虑数据库效率,否则需要考虑数据库进行分库分表和建立适当的索引,以提高数据库吞吐能力。 根据自己情况适当调整nginx/mysql/redis/memcache等软件的数据分块大小。 优化程序关键逻辑的流程,尽可能让程序始终遵循最短路径结束任务。 尽可能让TCP链接重用,或者适当调整持久链接的时间和数量(Keep-Alive),以及考虑使用SPDY。 防火墙/服务器代理软件/程序对访客限制流量。 过滤或者禁止能力范围内的异常流量。 DNS对于站点首次打开速度至关重要,所以请尽可能选择靠谱的DNS提供商来解决DNS查询问题。 国内有两家DNS提供商比较不

文档评论(0)

liudao + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档