各个层面的一些东西

    从工业革命到互联网革命,每一次的革命最终目的都是加快了信息的传递速度。-----------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...

猜你喜欢

转载自pengpeng.iteye.com/blog/1427372