从工业革命到互联网革命,每一次的革命最终目的都是加快了信息的传递速度。-----------google黑板报《浪潮之巅》
主要从浏览器,网络带宽,负载均衡,apache,jvm,linux角度探讨下应用性能调优的一些基础知识点;站在客户的角度来说,通过浏览器请求网站,请求数据流经网络,达到web服务器以及应用服务器。web服务器返回数据又流经网络返回给浏览器为客户展示信息;
浏览器
1.缓存 (Disk 会缓存最近访问过的网页片段)
2.多个DNS(因为浏览器会限制每个DNS几个并发请求),所以页面上的不同DNS不宜超过6个;浏览器会缓存DNS地址;
3. 根据http协议缓存ccs/js/图片等;
网络带宽
1.独立带宽/共享带宽
2.测量整个数据包某个路有点的延迟时间,找出瓶颈 (traceroute)
负载均衡
策略:1. 轮询; 2. 权值负载;3. 请求数均衡负载;等等
方式:1.client--> LB ---> server (client和LB建立连接。LB和server建立连接) ; 2. client --- LB ----> SERVER(client和LB不建立TCP,LB直接路由TCP); 3. 三角模式
apache
1. 基于MPM: 进程和线程公用模型;每个线程相应一个tcp请求;并且每个线程都监听在80端口(利用共享条件变量和互斥锁来避免惊群现象);
2. Prefork,event-based: apache启动时,即创建进程和线程池技术;这样即提高了性能(线程的创建和销毁); 也可以应对高并发请求;
hotsopt-jvm
1. 解释器和编译器(JIT): jvm是结合解释器和编译器的各自优点来执行class; (解释器加载代码速度快;编译器编译好的二进制代码执行速度快;)
2. 垃圾收集(gc): 分代;复制垃圾收集(新生代); 压缩垃圾收集(旧生代);
linux i/o操作
1. select/poll/kpoll/aio
2. sendfile :
cache:
1. 处处皆为cache;(寄存器<---L1/L2/L3 <-- 主存 <--- DISK cache )
2. memcached : (分布式K/V缓存)
数据库:
1. 索引
2. 垂直切分
3. 水平切分/sharding
处理海量数据计算:
1. hadoop : 利用廉价机器构建稳定,容错,高性能,可伸缩的计算平台;
2. key/value DB: HBase ,mongodb...
分享到:
相关推荐
SOA架构好书,首先SOA和微服务架构一个层面的东西,而对于ESB和微服务网关是一个层面的东西,一个谈到是架构风格和方法,一个谈的是实现工具或组件。 1.SOA(Service Oriented Architecture)“面向服务的架构”:...
这是一个多层次的架构,可以让您在各个层面上取得成功。 它是高度自以为是,但试图松散地持有这些意见,以便您可以根据需要进行更改。 获取黑客攻击 npm install npm start open localhost:4000 生成器命令 组件 ...
本书共分10部分,31章,囊括了在.NET框架下架建ASP.NET应用程序的各个层面。每一章也都不是泛泛而谈理论,而是围绕实际样例代码来组织,让读者马上可以上手,并且加深理解。书中还包含了两个完整的、立即就可以用得...
目前有人在对房屋价格的研究上已经取得了诸多成果,大多数人主要从政治、经济、政策、人口等宏观层面对房屋价格进行了分析,也有少数学者从房屋建筑硬件设施等微观因素展开了研究,也取得了较好的预测效果,但目前这...
沟通的范围在时间和精力许可内,也愈广愈好,包括高层(站在决策的高度)、中层(站在贯彻的角度)、基层(站在操作的角度)这样全面的范围,因为各个层面考虑的问题不同,而制定一个实施方案,最好是能够站在各个...
就像作者在后记中写得那样,这本书不注重方法论层面的东西,而关注自己在腾讯一线岗位的实战经验和成长经历,所以在知识体系上不够系统化,不太适合作为培训产品经理的素材。So在梳理笔的过程中,也按照自己的理解,...
保证问题获得完整地解决 将问题的各个部分解决好,即可解决整 个问题 所分问题的各个部分各不相同,而且包 括了各个方面(即没有重叠没有遗漏) 3.使项目小组共同了解解决问题的框架 4.协助重点使用组织框架及理论 ...
了,这里可以做的事情就非常多了,各个社区,各个厂家都可以参与进来。难怪 Android 的 sdk 可以 Apache License 发布了,对企业和开发人员友好啊。 那么 Google 自己的东西在哪里呢?没错,就是右边那个 runtime, ...
以下是对于不同层面转化率的简单概括,四个模块,六个层面 提升任何一层的转化率都将使最终销售量有所提升,所以当一条路走到头了,可以看 看其他路。每一层都优化一下,将会有意想不到的结果。 流量是王道,但我们...
以下是对于不同层面转化率的简单概括,四个模块,六个层面 提升任何一层的转化率都将使最终销售量有所提升,所以当一条路走到头了,可以看 看其他路。每一层都优化一下,将会有意想不到的结果。 流量是王道,但我们...
试图多理解他人,产品经理最重要的是同理心。群体用户思维简单,冲动,情绪化跟风,不管后台多复杂,在用户面前呈现的必须简单。...产品、功能、设计三个之中至少一个层面能够用用户能够熟悉的东西来帮助理解。
所以希望大家阅读本小册时,能够读到一些“书本之外的东西”——最好是一边读一边回忆自己既有的开发经历,尝试去留意哪些知识是已知的,哪些是未知的。 这样读完之后,就可以有的放矢地把这些知识转换为自己的项目...
所以希望大家阅读本小册时,能够读到一些“书本之外的东西”——最好是一边读一边回忆自己既有的开发经历,尝试去留意哪些知识是已知的,哪些是未知的。 这样读完之后,就可以有的放矢地把这些知识转换为自己的项目...
所以希望大家阅读本小册时,能够读到一些“书本之外的东西”——最好是一边读一边回忆自己既有的开发经历,尝试去留意哪些知识是已知的,哪些是未知的。 这样读完之后,就可以有的放矢地把这些知识转换为自己的项目...
所以希望大家阅读本小册时,能够读到一些“书本之外的东西”——最好是一边读一边回忆自己既有的开发经历,尝试去留意哪些知识是已知的,哪些是未知的。 这样读完之后,就可以有的放矢地把这些知识转换为自己的项目...
所以希望大家阅读本小册时,能够读到一些“书本之外的东西”——最好是一边读一边回忆自己既有的开发经历,尝试去留意哪些知识是已知的,哪些是未知的。 这样读完之后,就可以有的放矢地把这些知识转换为自己的项目...
所以希望大家阅读本小册时,能够读到一些“书本之外的东西”——最好是一边读一边回忆自己既有的开发经历,尝试去留意哪些知识是已知的,哪些是未知的。 这样读完之后,就可以有的放矢地把这些知识转换为自己的项目...
所以希望大家阅读本小册时,能够读到一些“书本之外的东西”——最好是一边读一边回忆自己既有的开发经历,尝试去留意哪些知识是已知的,哪些是未知的。 这样读完之后,就可以有的放矢地把这些知识转换为自己的项目...
所以希望大家阅读本小册时,能够读到一些“书本之外的东西”——最好是一边读一边回忆自己既有的开发经历,尝试去留意哪些知识是已知的,哪些是未知的。 这样读完之后,就可以有的放矢地把这些知识转换为自己的项目...