• 经常会遇到的性能优化的问题-----聊聊


    1、应用高并发如何优化

    • 架构优化
      • 软硬负载均衡的使用
      • 缓存的使用
      • 快速读写的使用
      • 处理复杂度比较高且可以剥离使用异步的,使用异步响应  
    • 代码优化
      • 避免死锁
      • 锁粒度的控制
      • 线程池的使用:业务复杂度的控制
      • 内存分配:避免大块内存的分配,避免内存泄漏的发生,避免递归调用,threadlocal使用时,在业务逻辑结束时,显示调用remove方法。
      • cpu资源的使用:线程的合理分配及回收,优先级等的出让,IO模式的使用
      • 异常的捕捉处理
    • 一句话,高并发,就在于cpu的高度利用,以及io等的高度配合,所以阻塞模式如bio等是一个大大的阻碍,而同步计算时长时间耗时的处理
    • 当然最终目的是,对用户或者调用方的及时响应    

    2、数据库怎么优化

    • 存储优化
      • 持久性:主备,避免单点问题
      • 合适的存储引擎选取
      • 合适的raid级别
      • 网络及连接数、编码等参数的设置  
    • 访问优化
      • 访问次数同获取内容量之间的折衷
      • 链接的合理重复利用:常见连接池
      • 读缓存优于读磁盘
      • 建立合理的索引并利用
      • 避免添加列的修改  
    • sql优化
      • 合理利用索引
      • fetch适当的数据:避免全部捞取,占用带宽
      • 排序或者复杂逻辑尽量在程序部分使用
      • 使用执行计划
      • 对慢查询优化
      • 分库分表的使用
      • 缓存的使用:对于非实时性要求特别高或者统计类的数据展示,可以引入缓存
      • nosql的使用:合理的使用
    • 当然DBA的介入非常必要,专业。    
  • 相关阅读:
    oracle如何查询哪个表数据量大
    SecureRandom生成随机数超慢 导致tomcat启动时间过长的解决办法
    smartctl----硬盘状态监控
    Oracle数据库的状态查询
    jdbc连接数据库使用sid和service_name的区别
    V$INSTANCE 字段说明
    V$PROCESS和V$SESSION,以及使用这两个视图能做什么
    NetOps Defined
    POI 海量数据
    HTML5 CSS3 诱人的实例: 3D立方体旋转动画
  • 原文地址:https://www.cnblogs.com/leeying/p/3877662.html
Copyright © 2020-2023  润新知