`
xieyj
  • 浏览: 100286 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

性能调优小结

阅读更多

       刚好项目快要上线,怎么查找系统的瓶颈?性能问题比崩溃这类问题来得复杂得多,作为以后查找问题的一个摘要,好好梳理一下。我们的系统一般都是bs系统,就以bs系统为例子。

       客户反映慢,第一反应先检查网络,以前还真遇到网络原因造成某个客户慢的情况,先找个机器连接上去,检查一下网络状况。ping一下服务器。

       接着检查一下,是否为系统的瓶颈。

       系统的瓶颈主要是cpu、内存、io等。下面以linux系统为例。

       1、首先检查是否为cpu瓶颈

       采用vmstat 1查看一下cpu和内存使用情况,注意里面的运行队列项r项,如果r项经常超过机器的cpu数,则要考虑关注是否是cpu瓶颈。si、so项经常不为0,则意味着系统大量使用swap,则要考虑内存瓶颈了。

       接着采用mpstat -P ALL,检查各个CPU的%usr、%sys使用率,看是核心态还是用户态的使用率高。是单个CPU使用率高,还是都高,如果一个CPU使用率高,而其他的CPU使用率低,则有可能这个CPU是瓶颈。

       如果初步断定为cpu瓶颈,则要找出引起瓶颈的程序,重点想办法优化,可以使用top、ps、pidstat等找出最耗cpu的进程,查找最耗cpu的线程ps Hh -eo pid,tid,pcpu | sort -nk3 | tail,可以用pstack大概分析一下进程在干什么,再进一步用perf、oprofiler工具进行采样跟踪,如果有源代码,perf将是一把性能分析的屠龙宝刀。

       2、如果内存和cpu使用不多,系统表现慢,则需要进一步考虑其他原因了,可能是竞态条件争用、io、网络等原因。像我们的服务器一般来说,上面的跑的应用就是我们的程序,可以用latencytop检查一下程序延迟的原因。


从latencytop输出可以大概分析一下主要延迟在何处。

       3、磁盘和网络方面。

       iostat 1检查一下磁盘使用程度,iostat -x检查磁盘的读写队列的长度,systemtap中的disktop.stp和iotop.stp、nettop.stp这几个东西也比较有用,可以让你很快找出耗磁盘和网络设备的最多的程序。

       netstat -s也可以检查网络的繁忙状态、网络丢包统计等。磁盘的优化手段主要有顺序读写和随机读写分开不同的物理盘,读写热点分开不同物理盘,磁盘条带化等。

       4、如果是竞态条件引起系统等待,或者系统上下文切换过多。在一般的应用系统上,很多是因为连接数据处理不过来导致,如果能知道程序现在在做什么,对分析就很有帮助了,此时strace、gdb、perf就很有帮助了,如果是java,也可以采用java dump,像jstack、jmap等重点是找出引起系统忙和等待的代码,这需要经验和具体分析了。java的profiler也是个很好的选择。

       系统调优,不同的子系统有不同的工具分析,懂得越多,分析问题的思路越广,问题定位就越准确。下面的针对不同的子系统的不同工具。

 

        调优是一个很有技术含量的活,佩服充分利用硬件的每一点资源的技术人员,吾等用着让硬盘灯狂闪、内存狂飙的工具干活,越来越沦为码奴了。

 

  • 大小: 109.1 KB
  • 大小: 25 KB
分享到:
评论

相关推荐

    微信小程序渲染性能调优小结

    主要介绍了微信小程序渲染性能调优,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    MySQL性能调优与架构设计(中文版)

     1.4 小结   第2章 MySQL架构组成   2.0 引言   2.1 MySQL物理文件组成   2.2 MySQL Server系统架构   2.3 MySQL 自带工具使用介绍   2.4 小结   第3章 MySQL存储引擎简介   3.0 引言 ...

    MySQL管理之道 性能调优、高可用与监控.part2.rar

    2.6 小结 70 第二部分 故障诊断与性能优化篇 第3章 故障诊断 72 3.1 影响mysql性能的因素 72 3.2 系统性能评估标准 73 3.2.1 影响linux服务器性能的因素 73 3.2.2 系统性能评估指标 74 3.2.3 开源监控和评估...

    MySQL5.1性能调优与架构设计.mobi

    以MySQL数据库的基础及维护为切入点,重点介绍了MySQL数据库应用系统的性能调优,以及高可用可扩展的架构设计。 ●基础篇介绍了MySQL软件的基础知识、架构组成、存储引擎、安全管理及基本的备份恢复知识 ●性能优化...

    spark性能优化小结

    spark优化,spark优化,spark优化,spark优化,spark优化

    深入理解Java虚拟机视频教程(jvm性能调优+内存模型+虚拟机原理)视频教程

    视频目录 第1节说在前面的话 [免费观看] 00:05:07分钟 | 第2节整个部分要讲的内容说明 [免费观看] 00:06:58分钟 | 第3节环境搭建以及jdk,...第104节字节码执行引擎小结00:03:38分钟 | 第105节总结与回顾00:10:55分钟

    struts2项目性能调优三步曲.txt

    纯属读书笔记,只是小结而已!对项目一个小点发现的自省!

    大话Java性能优化

    第1章 性能调优策略概述 1.1 为什么需要调优 1.2 性能优化的参考因素 1.3 性能调优分类方法 1.4 本章小结 第2章 优化前的准备知识 2.1 服务器知识 2.2 新兴技术 第3章 Java API调用优化建议 3.1 面向对象及...

    关于MySQL性能调优你必须了解的15个重要变量(小结)

    MYSQL 应该是比较流行的 WEB 后端数据库。虽然 NOSQL 最近越来越多的被提到,但是相信大部分架构师还是会选择 MYSQL 来做数据存储。本文作者总结梳理MySQL性能调优的15个重要变量,感兴趣的可以了解一下

    软件性能测试过程详解与案例剖析

    2.1性能测试的方法 2.1.1性能测试 2.1.2负载测试 2.1.3压力测试 2.1.4配置测试 2.1.5并发测试 2.1.6可靠性测试 2.1.7失效恢复测试 2.2性能测试应用领域分析 2.2.1能力验证 2.2.2规划能力 2.2.3性能调优 2.2.4发现...

    SQL Server 2016 查询存储性能优化小结

    作为一个DBA,排除SQL Server问题是我们的职责之一,每个月都有很多人给我们带来各种不能解释却要解决的性能问题。 我就多次听到,以前的SQL Server的性能问题都还好且在正常范围内,但现在一切已经改变,SQL Server...

    性能测试进阶指南——LoadRunner11实战 part2

    6.6.1 性能调优原理 6.6.2 前端性能分析 6.6.3 后端性能分析 6.7 性能测试报告 6.7.1 平台对比性能测试报告 6.7.2 Phpwind85性能分析报告 6.7.3 DiscuzX2 VS Phpwind85性能对比报告 6.7.4 Phpwind85验收指标性能测试...

    性能测试进阶指南——LoadRunner11实战 part3

    6.6.1 性能调优原理 6.6.2 前端性能分析 6.6.3 后端性能分析 6.7 性能测试报告 6.7.1 平台对比性能测试报告 6.7.2 Phpwind85性能分析报告 6.7.3 DiscuzX2 VS Phpwind85性能对比报告 6.7.4 Phpwind85验收指标性能测试...

    性能测试进阶指南——LoadRunner11实战 part1

    6.6.1 性能调优原理 6.6.2 前端性能分析 6.6.3 后端性能分析 6.7 性能测试报告 6.7.1 平台对比性能测试报告 6.7.2 Phpwind85性能分析报告 6.7.3 DiscuzX2 VS Phpwind85性能对比报告 6.7.4 Phpwind85验收指标性能测试...

    性能测试进阶指南——LoadRunner 9.1实战(扫描版)

    目录 第1章 性能测试基础  1.1 性能测试工程师的标准及挑战  1.1.1 性能测试工程师的考评指标  1.1.2 性能测试工程师的挑战  1.2 性能测试基础 ... 小结 第2章 LoadRunner综述  2.1 LoadRunner简介

    深入解析DB2--高级管理,内部体系结构与诊断案例.part1.rar

    5.7 本章小结 第6章 数据库配置参数调整 6.1 数据库配置参数 6.2 监控和调优实例(DBM)配置参数 6.3 监控和调优DB配置参数 6.4 调整DB2概要注册变量 6.5 内存自动调优 6.6 总结 第7章 锁和并发 7.1 锁等待及调整案例 ...

    性能测试进阶指南——LoadRunner11实战_(完整)扫描版_@vs.part1

    6.6.1 性能调优原理 6.6.2 前端性能分析 6.6.3 后端性能分析 6.7 性能测试报告 6.7.1 平台对比性能测试报告 6.7.2 Phpwind85性能分析报告 6.7.3 DiscuzX2 VS Phpwind85性能对比报告 6.7.4 Phpwind85验收指标...

    性能测试进阶指南——LoadRunner11实战_(完整)扫描版_@vs.part2

    6.6.1 性能调优原理 6.6.2 前端性能分析 6.6.3 后端性能分析 6.7 性能测试报告 6.7.1 平台对比性能测试报告 6.7.2 Phpwind85性能分析报告 6.7.3 DiscuzX2 VS Phpwind85性能对比报告 6.7.4 Phpwind85验收指标...

Global site tag (gtag.js) - Google Analytics