博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WEB前端性能优化及应用服务器性能优化和存储性能优化
阅读量:6954 次
发布时间:2019-06-27

本文共 1323 字,大约阅读时间需要 4 分钟。

WEB前端性能优化:
1.浏览器:
http:无状态应用协议,每次都要建立连接。
减少http请求:合并CSS,图片,javascript。图片合并,通过CSS鼠标偏移响应URL
使用浏览器缓存:CSS,图片,javascript等静态数据变更比较少,可以在首部中cache-control,expires属性控制。浏览器缓存更新使用渐进更新,防止浏览器大量集中更新造成服务器,网络负担。
启用压缩:
CSS在上,javascript在下。
减少cookie,静态资源单独域名。动静分离。
2.CDN(content distribute network内容分发网络)
最短路径返回。主要是静态资源。
3.反向代理
服务器端代理配置缓存。
应用服务器性能优化:
1.分布式缓存:
缓存的本质是hash表:k,v hashcode是对象的惟一标识符
key=>hashcode(key)=>hashcode表索引下标
二八定律
频繁修改的数据不适合缓存
数据的读写比大于2:1使用缓存才有意义。
弱事务一致性。
缓存不应该被当作一个可靠的数据来源。分布式缓存可在一定程序上增强可用性。防止缓存雪崩。
LRU,最近最久未用算法。
使用缓存预热加速性能。
缓存空数据,防止攻击。
分布式缓存架构:
JBOSS cache:更新同步,不适合大型网站,通常与应用部署在相同服务器上。
memcached:不同步。部署在不同的服务器上,通过一致性hash等路由选择算法。使用TCP,基于文本的自定义协议。服务端使用libevent网络通信程序库。
远程通信协议:TCP,UDP,HTTP
通信序列化协议:
文本数据序列化:XML,JSON等
二进制数据序列化:
内存管理:slab_class=>slab=>trunk,此方式内存浪费比较严重。
使用MQ消息队列将调用异步化,改进网站扩展性。
用户应用=>消息=>数据库
消息队列具有很好的削峰作用。
异步操作不能立即返回给用户数据,需要后面业务上的协调。
代码优化:
多线程。
IO阻塞与多CPU
启动线程数:[任务执行时间/(任务执行时间-IO等待时间)]*cpu核数
资源复用。
连接池。
数据结构。
算法优化。
垃圾回收.
存储性能优化:
机械硬盘 VS 固态硬盘
机械盘式硬盘:快速顺序读写,慢速随机读写
固态硬盘:可随机读写。
B+树 VS LSM树
传统关系型数据库一般使用B+树
2级检索,不超过3层,超过5次硬盘访问更新一条数据(3次索引+2次读写),数据随机读取,机械硬盘多次访问影响性能。
NOSQL多采用LSM树
N阶合并数,数据操作在内存中进行,保持树型结构,当数据量超过设置阀值时,和磁盘上的上下级排序树合并,使用新数据复写老数据。
读数据时优先从内存中查找,找不到时再向磁盘中排序树查找。
LSM树更新数据在内存中,不需要多次访问磁盘。
当数据以写为主,读集中在最近访问的数据时。
HDFS VS RAID
mapreduce 并发任务计算框架
block复写 分布式文件系统不在需要RAID系统
name节点
data节点 以块为单位,一般设置比操作系统默认的512K大得多。

转载地址:http://zpjil.baihongyu.com/

你可能感兴趣的文章
Tomcat session Error
查看>>
HAProxy双机高可用方案之HAProxy+Keepalived
查看>>
mysql忘记密码解决方法
查看>>
Node.js开发指南 学习日志 3.3.3创建包
查看>>
第三方QQ登录不回调 (Android)
查看>>
Laravel5.3之Session源码解析(上)
查看>>
ConcurrentHashMap实现原理及源码分析
查看>>
ubuntu14安装配置-搜狗输入法/更新源
查看>>
UITextField设置大全
查看>>
Eclipse安装m2eclipse插件(Maven)
查看>>
JAVA获取CLASSPATH路径
查看>>
虚拟机NAT模式无法上网问题的解决办法
查看>>
java学习笔记--线程同步
查看>>
No serializer found for class org.apache.ibatis.executor.loader.javassist.JavassistProxyFactory$
查看>>
windows 下最快搭建svn服务器方法
查看>>
获取android系统外置存储卡路径的方法
查看>>
mysql 链接错误
查看>>
php 数组字符串搜索array_search技巧
查看>>
hive中的NULL
查看>>
进程死锁(银行家算法)
查看>>