zoukankan      html  css  js  c++  java
  • 性能优化学习笔记

    1.性能优化是什么

         性能优化就是发挥机器本来的性能。

    2.性能的几个维度

    2.1 CPU

    命令:vmstat

    首先检查 cpu,cpu 使用率要提升而不是降低。CPU 空闲并不一定是没事做,也有可能是锁或者外部资源瓶颈。

    buffer和cache的区别:

    两者都是RAM中的数据,简单来说,buffer是即将要被写进磁盘的,cache是被从磁盘中读出来的。这两者是为了提高IO性能的,并有OS管理,并非应用自己分配的内存,而是OS根据自己需要对空闲内存进行的额外利用。因为这部分只是缓存,降低IO,提升性能,只要应用程序有需要,OS可以直接将buffer写入磁盘,将cache删掉,得到空闲内存给应用程序使用。

     

    命令top

     2.1 IO

    命令:iostat

     

    2.3Memory

    命令:free

     

     2.4 NetWork

    命令:nicstat(需要安装)

    2.5 监控软件

    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 ” 40437

    F. 到刚刚导出的 p.txt 里面检索定位到

     

     

     

     

     

  • 相关阅读:
    C# DES加密
    C#Base64编码
    从原理上搞定编码(四)-- Base64编码
    IIS CS0016: 未能写入输出文件“c:WINDOWSMicrosoft.NETFramework.。。”--“拒绝访问
    [转]mysql 数据类型
    [转]Spring MVC 教程,快速入门,深入分析
    [转]SSH和SSM对比总结
    [转]SpringMVC<from:form>表单标签和<input>表单标签简介
    【转】Oracle 自定义函数语法与实例
    【转】Lombok:让JAVA代码更优雅
  • 原文地址:https://www.cnblogs.com/cocoxu1992/p/11082604.html
Copyright © 2011-2022 走看看