服务器性能优化

1.缓存

(1)缓存原理

  a.什么是缓存?(将数据存储在相对较高访问速度的介质中,以供系统处理)

  b.缓存的优点:访问速度快,如果需要计算可以减少计算时间

  c.缓存的本质是一张以键值对存储的内存hash表

  d.主要用来存储:读写比例高,很少变化的数据

  e.网站的访问遵循28定律

(2)合理使用缓存应该注意以下问题

  a.频繁更新的数据(数据还没有读就已经失效,一般要求读写比在2:1以上才有意义)

  b.没有热点数据(无疑浪费资源)

  c.数据不一致与脏读(缓存被加载的过程中可能会产生数据不一致,有效时间过程数据在内存中就会变成脏数据)

  d.缓存的可用性(如果太过依赖缓存,容易产生雪崩。使用缓存热备并不能提高缓存的可用性,使用集群可以提高可用性)

  e.缓存预热(LRU计算时间过长,有的数据需要提前加载)

  f.缓存穿透(解决部分数据无法命中,而加重数据库压力的问题,一般设置空值)

(3)分布式缓存架构

  a.JBoss Cache:数据相同

  b.Memcached:数据不同互不通信

  c.Memcached5大优点:协议简单、通用性强(支持各种语言)、Libevent网络通信、内存管理高效、互不通信

 2.异步操作

  a.数据直接写入数据库会造成巨大的压力

  b.异步可以减缓响应时间,还能提升网站性能

  c.对于大型网站来说,异步可以实现削峰

 3.使用集群

 使单台服务处于最佳性能区间

 4.数据库

      大部分的服务器请求最终都是要落到数据库中,随着数据量的增加,数据库的访问速度也会越来越慢。想要提升请求处理速度,必须要对原来的单表进行动刀了。目前主流的Linux服务器使用的数据库要属mysql了,如果我们使用mysql存储的数据单个表的记录达到千万级别的话,查询速度会很慢的。

根据业务上合适的规则对数据库进行分区分表,可以有效提高数据库的访问速度,提升服务器的整体性能。另外对于业务上查询请求,在建表的时候可以根据相关需求设置索引等,以提高查询速度。
 

 5.代码优化

  a.多线程

  (1)线程优于进程的原因:更轻量级、资源消耗更少、切换更容易

  (2)使用多线程的原因:IO阻塞和多CPU

  (3)保证线程安全的手段:无状态对象、局部对象、锁

  b.数据结构

  (1)Hash表数据结构:依赖于HashCode,越散列,冲突越少,读写性能越高。

  (2)优化手段:Time33和信息指纹

  c.资源复用:单例和线程池

  d.垃圾回收:理解JVM垃圾回收机制

参考:
​​​​​​性能优化——应用服务器性能优化 - 明王不动心 - 博客园

服务器性能优化的8种常用方法_程序猿老樊的博客-CSDN博客_服务器优化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值