Linux性能优化及性能问题定位

  1. 性能优化是什么?
    1.1 性能优化就是发挥机器本来的性能
  2. 性能的几个唯度
    1.1.1 CPU
    命令 vmstat
    在这里插入图片描述
    http://www.man7.org/linux/man-pages/man8/vmstat.8.html
    首先检查 cpu,cpu 使用率要提升而不是降低
    CPU 空闲并不一定是没事做,也有可能是锁或者外部资源瓶颈。
    命令 Top
    在这里插入图片描述
    http://man7.org/linux/man-pages/man1/top.1.html
    1.1.2 IO
    命令 iostat
    在这里插入图片描述
    http://www.man7.org/linux/man-pages/man1/iostat.1.html
    1.1.3 Memory
    命令 free
    在这里插入图片描述
    http://www.man7.org/linux/man-pages/man1/free.1.html
    在这里插入图片描述
    1.1.4 Network
    命令 nicstat (需要安装)
    wget http://sourceforge.net/projects/nicstat/files/nicstat-1.92.tar.gz
    tar -zxvf nicstat-1.92.tar.gz
    sudo vim Makefile
    CFLAGS = $(COPT) -m32#将此行修改为如下:
    CFLAGS = $(COPT)
    sudo make -f Makefile install
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    1.1.5 监控软件
    https://www.zabbix.com/documentation/2.0/manual/appendix/api/api
    zabbix nagios prometheus
  3. 术语
    吞吐量:对单位时间内完成的工作量的度量
    平均响应时间:提交请求和返回该请求的响应之间使用的时间
    平均响应时间越短,系统吞吐量越大;平均响应时间越长,系统吞吐量越
    小;但是,系统吞吐量越大,未必平均响应时间越短;因为在某些情况(例
    如,不增加任何硬件配置)吞吐量的增大,有时会把平均响应时间作为牺牲,
    来换取一段时间处理更多的请求。
    tps: Transactions per Second
    qps: Queries per Second
  4. 补充
    CPU 负载高怎么定位:
    A. top 找到 CPU 高的进程 (原理:方法是由线程执行的,线程是在进程下的,找
    到进程下 cpu 最高的线程就能定位到方法)
    在这里插入图片描述
    B. Shift + H 切换到线程模型 找到线程执行 cpu 高的线程号
    在这里插入图片描述
    C. Jstack pid > p.txt 用 jstack 导出线程的 dump (记住这个问题有时候没有那么明显
    一直 cpu100%,可能是间歇性的 cpu 高所以这个能抓住这个线程还是要看运气)
    D. 把线程号转 16 进制 printf “%x \n” 40437
    在这里插入图片描述

F. 到刚刚导出的 p.txt 里面检索定位到
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值