大型的网络网站优化总结<一>

我们先说大型网站都具备哪些特点:

  1. 高并发,大流量
  2. 高可用
  3. 海量数据
  4. 用户分布广泛,网络情况复杂
  5. 安全环境恶劣
  6. 需求快速变更,发布频繁
  7. 渐进式发展

网站性能是决定我们如何去做优化,优化哪些方面

1.用户:网站浏览速度的快慢(用户体验)通信(网速)时间,查找(数据库)时间,解析(语言 - >浏览器)时间指的就是网站打开的快慢
2.开发人员:系统的性能(响应延迟,并发数,吞吐量(I / O读写量),系统稳定性,高可用性);
3.运维人员:资源的利用率

优化一之浏览器优化

浏览器

1.减少HTTP请求(铬谷歌代理店,火狐的火狐请求)

js,css:每个js或css都不能让其单独算一个请求
    像js合并成一个或几个文件<link>引入common,body【方法:合并文件】
    img小图片(像li标签的点,这写点也是一个图片,也是链接)引入雪碧图的概念:即把每个小图标定位到指定的位置,背景看成大图
2.浏览使用器缓存
    即一次性把所需的数据加入缓存中
3.减少cookie的传输

    name、value、expire、path、domain、secure
    name    必需。规定 cookie 的名称。
    value    必需。规定 cookie 的值。 单个value值最大4KB
    expire    可选。规定 cookie 的过期时间。
    path    可选。规定 cookie 的服务器路径(作用率)。
    domain    可选。规定 cookie 的域名(有效期)。
    secure    可选。规定是否通过安全的 HTTPS 连接来传输 cookie。
    
    Safari(苹果)不支持flash  但h5可以
    Firefox和Safari允许cookie多达4097个字节,包括名(name)、值(value)和等号。
 Opera允许cookie多达4096个字节,包括:名(name)、值(value)和等号。
 Internet Explorer允许cookie多达4095个字节,包括:名(name)、值(value)和等号。
      注:多字节字符计算为两个字节。在所有浏览器中,任何cookie大小超过限制都被忽略,且永远不会被设置。
      注:  浏览器一般只允许存放300个Cookie,每个站点最多存放50个Cookie,每个Cookie的大小限制为4KB。

4.启用压缩

JS和CSS如:铬和百度样式的源代码只有一行(减少解析空格和换行的时间)
    把空格和换行都去除(在线CSS格式化工具即可)

5.js放最下面,CSS放最上面,加载错误只会少了一块空白, 加载报错会加载不出来

6. CSS雪碧的基本原理是把你的网站上用到的一些图片整合到一张单独的图片中,从而减少你的网站的HTTP请求数量。

优化二之网络运营商优化

网络运营商
CDN原理:
    .CDN是一个经济的策略性部署的整体系统,从技术上全面解决由于网络带宽小,用户访问量大,网点分布不均而产生的用户访问网站响应速度慢的根本原因
    CDN目的是通过在现有的互联网中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,解决互联网网络拥塞状况,提高用户访问网站的响应速度
.CDN内容分发网络,本质是一个缓存,得花钱买部署在网络运营商(网通和电信,双网通)的机房那里该节点部署区域和数量加快站点是密切相关的重要加快或域名部分缓存:是指数据存储在相对的I / O操作较快的介质中。

好处:
节约时间:
    1.计算时间
    2.读取时间
    3.传输时间
IP:我们访问网站时,IP记录的次数
PV:指页面访问的次数

坏处:
    1.花钱
    2.数据不一致,容易引起脏读。

脏读:事务1更新了记录,但没有提交,事务2读取了更新后的行,然后事务T1回滚,现在T2读取无效。

优化三之缓存(合理使用缓存)

1.缓存热点:大量的人看

2.高读写比(至少是2:1缓存才有意义),不经常改变高读写比(2/1)的热点
3.缓存内容原则:八二原则(80%的访问量落在20 %的页面上)
需要注意的事项:  缓存穿透,缓存预热,缓存雪崩等问题。

缓存雪崩

缓存雪崩可能是因为数据未加载到缓存中,或者缓存同时时大面积的失效,从而导致所有请求都去查数据库,导致数据库CPU和内存负载过高,甚至宕机。
解决思路:
1,采用加锁计数,或者使用合理的队列数量来避免缓存失效时对数据库造成太大的压力。这种办法虽然能缓解数据库的压力,但是同时又降低了系统的吞吐量
0.2,分析用户行为,尽量让失效时间点均匀分布避免缓存雪崩的出现。
3,如果是因为某台缓存服务器宕机,可以考虑做主备,比如:Redis的主备,但是双缓存涉及到更新事务的问题,更新可能读到脏数据,需要好好解决。

缓存穿透

缓存穿透是指用户查询数据,在数据库没有,自然在缓存中也不会有。这样就导致用户查询的时候,在缓存中找不到,每次都要去数据库中查询。
解决思路:
1 ,如果查询数据库也为空,则直接设置一个默认值存放到缓存,这样第二次到缓冲中获取就有值了,而不会继续访问数据库,这种办法最简单粗暴
2,根据缓存数据的关键的规则。例如我们公司是做机顶盒的,缓存数据以苹果为重点,苹果是有规则,如果不符合规则就过滤掉,这样可以过滤一部分查询。在做缓存规划的时候,关键有一定规则的话,可以采取这种办法。这种办法只能缓解一部分的压力,过滤和系统无关的查询,但是无法根治
3,采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的BitSet中,不存在的数据将会被拦截掉,从而避免了对底层存储系统的查询压力。关于布隆过滤器,详情查看:基于BitSet的布隆过滤器(Bloom Filter)

缓存预热(洗澡先烧热水)

单机网络系统情况下比较简单。
解决思路:
1,直接写个缓存刷新页面,上线时手工操作下
2,数据量不大,可以在WEB系统启动的时候加载

3,搞个定时器定时刷新缓存,或者由用户触发都行。

分布式缓存系统,如Memcached,Redis,比如缓存系统比较大,由十几台甚至几十台机器组成,这样预热会复杂一些。

memcache优点:简单的通信协议;丰富的客户端程序;高性能的优化协议(libevent支持事件触发的网络通信程序库)

解决思路:
1,写个程序去跑
2,单个缓存预热框架。
注:缓存预热的目标就是在系统上线前,将数据加载到缓存中。

大型Web网站优化总结一相关推荐

  1. 大型WEB网站架构深入分析

    大型WEB网站架构深入分析 ---本文转载自互联网 1.HTML静态化 其实大家都知道,效率最高.消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单 ...

  2. 大型Web 网站 Asp.net Session过期你怎么办

    在 WEB 系统中, 我们一般会用session来保存一些简单但是却很重要的信息.比如Asp.net中经常会用Session来保存用户登录信息,比如UserID.为了解决 WEB场大家采用了把sess ...

  3. 关于大型网站技术演进的思考(二十)--网站静态化处理—web前端优化—中(12)...

    Web前端很多优化原则都是从如何提升网络通讯效率的角度提出的,但是这些原则使用的时候还是有很多陷阱在里面,如果我们不能深入理解这些优化原则背后所隐藏的技术原理,很有可能掉进这些陷阱里,最终没有达到最佳 ...

  4. linux 网站服务器优化 web server优化

    http://www.a8z8.com/html/2012/tech_1117/50.html 服务器的优化是我们最小化安装系统时应该做的事情.其实,在做这项工作之前,我们就应该根据实际应用需求来选购 ...

  5. 某大型政务网站的优化咨询案例(视频点播VOD+GZIP压缩+静态文件CDN+Redis缓存+全文索引)

    2022年圣诞节到来啦,很高兴这次我们又能一起度过~ 这次分享关于一个对某大型政务网站的优化咨询的案例,发生在今年的下半年,已过去一段时间,并取得了良好的成果!* 项目背景 某大型政务网站准备上线,需 ...

  6. [译]Web 性能优化: 图片优化让网站大小减少 62%

    这是 Web 性能优化的第二篇,上一篇在下面看点击查看: Web 性能优化: 使用 Webpack 分离数据的正确方法 图像是web上提供的最基本的内容类型之一.他们说一张图片胜过千言万语.但是如果你 ...

  7. 减少HTTP请求之合并图片详解(大型网站优化技术)

    一.相关知识讲解 看过雅虎的前端优化35条建议,都知道优化前端是有多么重要.页面的加载速度直接影响到用户的体验.80%的终端用户响应时间都花在了前端上,其中大部分时间都在下载页面上的各种组件:图片,样 ...

  8. 减少HTTP请求(大型网站优化技术)

    在网站开发过程中,对于页面的加载效率一般都想尽办法求快.那么,怎么让才能更快呢?减少页面请求 是一个优化页面加载速度很好的方法.上一篇博文 我们讲解了 "利用将小图标合成一张背景图来减少HT ...

  9. 前端flv.js设置缓冲时间和大小_不可不知的 WEB 前端网站优化 —— 雅虎 34 条军规...

    不可不知的 WEB 前端网站优化 -- 雅虎 34 条军规 不得不说现在依然适用于大部分的网站 当年雅虎推荐了一套优化网站加载速度的34条法则(包括Yslow规则22条),以下是详细说明. 1. Mi ...

  10. 大型网站优化方案思路技巧总结

    在大型网站优化当中,SEO的术体现的并不明显.比如外链.TDK等这些基础的专业点比重是比较低的.对于大型网站的SEO优化操作更多的需要去把控好网站运营的思维来进行优化和调控,严格来说,哪怕是一个小型的 ...

最新文章

  1. php源码编程,10个小技巧让你做好php源码编程
  2. Redis的哨兵模式Sentinel
  3. STL之双向循环链表(List)的内部关系
  4. Pygal简单使用——模拟掷骰子
  5. Physical Standby Database Failover
  6. hadoop程序MapReduce之DataSort
  7. DEDE的安装 和 DEDE文件和目录详解与安全问题
  8. 力扣题目系列:121. 买卖股票的最佳时机
  9. python2中打印中文
  10. ftp同步软件android,[Android ]FTP/SCP/FTPS客户端AndFTP v4.5专业版 开心版
  11. python下载百度文库文档_Python百度文库爬虫之txt文件
  12. 蓝天学校计算机教学反思,小学四年级上册《飞向蓝天的恐龙》教学反思
  13. 火车头 php 插件,插件 - 火车采集器官方博客
  14. 《女生宿舍第二部》(1-46上) 转贴
  15. 坚果投影仪怎么才能访问电脑共享文件,详细的操作方法分享
  16. 计算机网络通信协议常见问题
  17. Matlab bsxfun函数
  18. Linux内核的删除
  19. Oracle 19c VLDB and Partitioning Guide 第4章:分区管理 读书笔记
  20. antd 输入框只能输入英文、数字、下划线

热门文章

  1. 弗兰克赫兹实验计算机仿真实验报告,大学物理实验教学大纲
  2. oracle32位迁移64位,Windows下Oracle10g32位遷移到11g64位
  3. 23位子网掩码是多少_子网掩码23位的是多少
  4. esxcli software vib 命令为 ESXi 5.x/6.x 主机安装补丁程序 (2008939)
  5. RPL-UDP的cooja仿真过程
  6. 基于PHP+Html+MySQL的网上手机商城系统
  7. 红米note5解锁教程_红米Note5人脸解锁怎么设置 红米Note5人脸解锁设置教程
  8. SNF开发平台WinForm之十三-单独从服务器上获取PDF文件进行显示-SNF快速开发平台3.3-Spring.Net.Framework...
  9. Flutter 调用微信SDK,实现微信支付、微信分享、微信登录、打开微信小程序
  10. word中无法输入中文