zoukankan      html  css  js  c++  java
  • 性能优化笔记:参考https://mp.weixin.qq.com/s/phXzTBqhC3LQ3-8NTV6Z9Q

    1)缓存
    2)异步:多线程、消息队列
    3)分布式
    4)IO场景:长连接代替短链接;打包发送数据
    5)数据库的调优,总的来说分为以下三部分:sql语句、连接池、索引
    6)关注CPU平均负载的时候,特别需要注意趋势的变化。如果 1 分钟/5 分钟/15 分钟的三个值相差不大,那说明系统负载很平稳

    7)挂起状态的线程数过多,意味着程序里锁竞争激烈,需要考虑通过其它的方案来缩小锁的粒度、级别,甚至是避免用锁
    8)关注端口的使用和每个端口上的连接状态情况。比较常见的问题是,连接用完有没有及时释放,导致端口被占满,后续新的网络请求无法建立连接通道。(可以通过netstat、ss获取网络相关的信息
    9)磁盘:
    第一点,如果I/O利用率很高,但是吞吐量很小,则意味着存在较多的磁盘随机读写,最好把随机读写优化成顺序读写。(可以通过 strace 或者 blktrace 观察 I/O 是否连续判断是否是顺序的读写行为)

    其次,如果I/O等待队列的长度比较大,则该磁盘存在 I/O 性能问题。一般来说,如果队列长度持续超过2就可以这么认为。
    10)内存:有一个Swap换入和换出的内存大小需要特别注意一下。因为Swap需要读写磁盘,所以性能不是很高

    做优化的时候建议从应用程序层面开始,再到组件层面,最后才是系统层面,从上往下,层层深入

    组件是指那些非业务性的东西,比如一些中间件、数据库、运行时的环境(JVM、WebServer)








  • 相关阅读:
    python 3.5下用户登录验证,三次锁定的编码
    Python之面向对象
    Python基础之模块
    Python基础之yield,匿名函数,包与re模块
    Python基础之函数
    Python基础之字符编码,文件操作流与函数
    Python基础之字符串,布尔值,整数,列表,元组,字典,集合
    Python基础之(判断,循环,列表,字典)
    mysql学习
    linux 下的 正则表达式(awk,sed,awk)学习
  • 原文地址:https://www.cnblogs.com/testzcy/p/12522295.html
Copyright © 2011-2022 走看看