一、等待

客户端发送请求到服务端相应请求的过程,是需要等待的,而等待时间的长短通常是衡量这个网站“快慢”的重要指标,在这等待的时间里,到底发生了什么?概括来说经历了以下几个部分时间:

  • 数据在网络上传输的时间(受发送的数据量和网络宽带的影响)
  • 服务器处理请求并声称回应数据的时间(衡量的指标是吞吐率,即每秒处理请求数,影响吞吐率的因素很多,如I/O性能、cpu核数等等)
  • 浏览器本地计算和渲染的时间(依赖的因素包括浏览器采用的并发策略、样式渲染方式、页面大小、页面组件的数量等等)

二、瓶颈

系统性能的瓶颈是指影响性能的关键因素,而这个关键因素随着系统的运行又会发生不断的变化或迁移。

在关键因素的背后,也存在很多不能忽略的子因素,构成性能优化的“长尾效应”。

三、处理瓶颈的通常方式

  • 增加宽带(增加宽带是架构师想到的最省事的办法,但是找到当前的宽带用到了哪里,如何更好地运用才是根本。)
  • 减少页面http请求(1、设计更简单的页面,但这可能牺牲了美观和用户体验。2、将多个图片合并成一个图片,通过css背景图片的偏移技术呈现在网页中,避免多个图片的下载。3、合并js和css。4、充分利用浏览器端缓存策略,减少重复下载。)
  • 加快服务器端脚本计算速度(asp.net中,编译器对某个脚本程序第一次解释的时候将中间代码缓存起来,以供下次直接使用
  • 使用动态内容缓存(将动态内容的html数出结果缓存起来,在随后的一段时间内,当有用户访问时便跳过重复的动态内容计算而直接输出,缓存带来性能提升恰恰与有些动态数据实时交互的需求形成矛盾)
  • 动态内容静态化
  • 更换web服务器软件
  • 页面组件分离(网页的各种各样的组件他们的下载量和对服务器的能力要求不尽相同,如果由同一台物理服务器或者头哦那个一个并发策略的web服务器软件来统一提供服务,那势必造成计算资源的浪费以及并发策略的低效,所以,分离带来的好处是显而易见的。)
  • 合理部署服务器(同一个局域网内通信或者接入同一个城市交换节点的局域网之间通信,数据达到时间相对较短,而如果通信的两端主机位于不同运营商的主机,那么数据必须流经两个互联网运营商的顶级交换节点和骨干路线,那么这个顶级交换节点,将会是瓶颈所在)
  • 负载均衡(当一台服务器扛不住的时候,就要想办法将流量合理转移到更多地服务器,我们需要用不同的方法实现web负载均衡。)
  • 优化数据库

---------------------------------------------------------------------------------------------------------------------------------------------------------

软谋在线教育,最适合大学生、上班族的在线软件培训,主要教授asp.net动态网站制作,yy教育房间远程实时授课,每节课录制成高清视频课后分享,老师白天八小时全职在线辅导,不懂就问。加qq群:138800420 即可免费试听。

高性能web站点建设(一)的更多相关文章

  1. [知识库分享系列] 三、Web(高性能Web站点建设)

    知识库分享系列: [知识库分享系列] 二..NET(ASP.NET) [知识库分享系列] 一.开篇 分享介绍此知识库之所以为 Web 系列,因为和 .NET 没有完全的关系,其中的技术和实践实用于各种 ...

  2. [知识库分享系列] 二、Web(高性能Web站点建设)

    知识库分享系列: [知识库分享系列] 二..NET(ASP.NET) [知识库分享系列] 一.开篇 分享介绍 此知识库之所以为 Web 系列,因为和 .NET 没有完全的关系,其中的技术和实践实用于各 ...

  3. 【读书笔记】2016.12.10 《构建高性能Web站点》

    本文地址 分享提纲: 1. 概述 2. 知识点 3. 待整理点 4. 参考文档 1. 概述 1.1)[该书信息] <构建高性能Web站点>: -- 百度百科 -- 本书目录: 第1章 绪论 ...

  4. 《构建高性能web站点》随笔 无处不在的性能问题

    前言– 追寻大牛的足迹,无处不在的“性能”问题. 最近在读郭欣大牛的<构建高性能Web站点>,读完收益颇多.作者从HTTP.多级缓存.服务器并发策略.数据库.负载均衡.分布式文件系统多个方 ...

  5. 构建高性能web站点--读书大纲

    用户输入你的站点网址,等了半天..还没打开,裤衩一下就给关了.好了,流失了一个用户.为什么会有这样的问题呢.怎么解决自己站点“慢”,体验差的问题呢. 在这段等待的时间里,到底发生了什么?事实上这并不简 ...

  6. [拇指飞动]构建高性能Web站点(1)

    <构建高性能Web站点>中提到了Aphache, Nginx和lighthttpd. 把我的笔记share一下. 一般来讲Apache主要是基于多进程模型,早期的fork模式会为每一个re ...

  7. 构建高性能WEB站点笔记三

    构建高性能WEB站点笔记三 第10章 分布式缓存 10.1数据库的前端缓存区 文件系统内核缓冲区,位于物理内存的内核地址空间,除了使用O_DIRECT标记打开的文件以外,所有对磁盘文件的读写操作都要经 ...

  8. 构建高性能WEB站点笔记二

    构建高性能WEB站点笔记 因为是跳着看的,后面看到有提到啥epoll模型,那就补充下前面的知识. 第三章 服务器并发处理能力 3.2 CPU并发计算 进程 好处:cpu 时间的轮流使用.对CPU计算和 ...

  9. 构建高性能web站点笔记一

    构建高性能web站点笔记 第三章 服务器并发处理能力 3.1吞吐率 描述服务器在实际运行期间单位时间内处理的请求数.也就是一定并发用户的情况下,服务器处理请求能力的量化体现. 吞吐率的前提包括: 并发 ...

随机推荐

  1. c# process 输入输出

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  2. Android ViewPager多页面滑动切换以及动画效果

    一.首先,我们来看一下效果图,这是新浪微博的Tab滑动效果.我们可以手势滑动,也可以点击上面的头标进行切换.与此同方式,白色横条会移动到相应的页卡头标下.这是一个动画效果,白条是缓慢滑动过去的.好了, ...

  3. 嵌入式 hi3518c裸板uboot烧写、kernel烧写、fs烧写小结

    1.在uboot中我可以添加自己的命令,添加的方法是找到一个uboot的命令,然后模仿着去增加属于自己的命令代码以及实现函数就可以 2.记住在使用printf进行调试的时候,在遇到指针或者字符串的时候 ...

  4. [Stephen]C#中调用C++动态链接库

    1.主程序声明引用外部方法,并完成方法调用

  5. 【解决】Oracle数据库实现ID自增长

    Oracle数据库要实现ID的自增长,需要创建一个序列和触发器来实现,略微有一点点麻烦,但是也是可以解决的. 直接上地址,首先,http://www.wlcrane.com/article.aspx? ...

  6. HW2.2

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  7. 路由器中pppoe,动态IP,静态IP的区别

    路由器中pppoe,动态IP,静态IP的区别 要把路由器设置得能上网,无非就是设置WAN外网接口连接而已.WAN接口能上网,则连接的电脑就能上网,反之则上不了网.只不过WAN接口往往有pppoe,动态 ...

  8. oc学习之路----代理模式

    今天刚学完oc的代理模式,觉得有点新奇,第一次接触,原理 A完成一件事,但是自己不能完成,于是他找个代理人B 替他完成这个事情,他们之间便有个协议 (protocol),B继承该协议来完成A代理给他的 ...

  9. Redis集群战法整理

    单机及集群搭建 http://www.codeceo.com/article/distributed-caching-redis-server.html 主从复制设置 Redis服务器复制(主—从配置 ...

  10. Objective-C 编程艺术 (Zen and the Art of the Objective-C Craftsmanship 中文翻译)

    # 禅与 Objective-C 编程艺术 (Zen and the Art of the Objective-C Craftsmanship 中文翻译) - 原文 <https://githu ...