各个层面的一些东西
? ? 从工业革命到互联网革命,每一次的革命最终目的都是加快了信息的传递速度。-----------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. 三角模式
1. 基于MPM: 进程和线程公用模型;每个线程相应一个tcp请求;并且每个线程都监听在80端口(利用共享条件变量和互斥锁来避免惊群现象);
2. Prefork,event-based: apache启动时,即创建进程和线程池技术;这样即提高了性能(线程的创建和销毁); 也可以应对高并发请求;
1. 解释器和编译器(JIT): jvm是结合解释器和编译器的各自优点来执行class; (解释器加载代码速度快;编译器编译好的二进制代码执行速度快;)
2. 垃圾收集(gc): 分代;复制垃圾收集(新生代); 压缩垃圾收集(旧生代);
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...