查看程序系统瓶颈

转:http://coolshell.cn/articles/7490.html

3.1)查看操作系统负载

首先,当我们系统有问题的时候,我们不要急于去调查我们代码,这个毫无意义。我们首要需要看的是操作系统的报告。看看操作系统的CPU利用率,看看内存使用率,看看操作系统的IO,还有网络的IO,网络链接数,等等。Windows下的perfmon是一个很不错的工具,Linux下也有很多相关的命令和工具,比如:SystemTapLatencyTOP,vmstat, sar, iostat, top, tcpdump等等 。通过观察这些数据,我们就可以知道我们的软件的性能基本上出在哪里。比如:

1)先看CPU利用率,如果CPU利用率不高,但是系统的Throughput和Latency上不去了,这说明我们的程序并没有忙于计算,而是忙于别的一些事,比如IO。(另外,CPU的利用率还要看内核态的和用户态的,内核态的一上去了,整个系统的性能就下来了。而对于多核CPU来说,CPU 0 是相当关键的,如果CPU 0的负载高,那么会影响其它核的性能,因为CPU各核间是需要有调度的,这靠CPU0完成)

2)然后,我们可以看一下IO大不大,IO和CPU一般是反着来的,CPU利用率高则IO不大,IO大则CPU就小。关于IO,我们要看三个事,一个是磁盘文件IO,一个是驱动程序的IO(如:网卡),一个是内存换页率。这三个事都会影响系统性能。

3)然后,查看一下网络带宽使用情况,在Linux下,你可以使用iftop, iptraf, ntop, tcpdump这些命令来查看。或是用Wireshark来查看。

4)如果CPU不高,IO不高,内存使用不高,网络带宽使用不高。但是系统的性能上不去。这说明你的程序有问题,比如,你的程序被阻塞了。可能是因为等那个锁,可能是因为等某个资源,或者是在切换上下文。

通过了解操作系统的性能,我们才知道性能的问题,比如:带宽不够,内存不够,TCP缓冲区不够,等等,很多时候,不需要调整程序的,只需要调整一下硬件或操作系统的配置就可以了

时间: 2024-08-06 04:11:31

查看程序系统瓶颈的相关文章

查看系统负载 w top vmstat,sar

查看系统负载 1.#w 第一行从左面开始显示的信息依次为:时间,系统运行时间,登录用户数,平均负载;第二行开始以及下面所有 的行,告诉我们的信息是,当前登录的都有哪些用户,以及他们是从哪里登录的等等. load average 平均负载 load average后跟三个数值,第一个数值表示1分钟内系统的平均负载值(即1分钟之内有多少个进程在使用CPU ):第二个数值表示5分钟内系统的平均负载值:第三个数值表示15分钟系统的平均负载值.意义是单位时间段 内CPU活动进程数.值越大就说明服务器压力越

Linux8.1 查看系统负载

w命令 使用w查看系统负载 #load average 一分钟 五分钟 十五分钟 时间段内系统的负载值,单位时间段内,使用CPU的活动的进程数量 #数值为系统逻辑cpu(并非物理cpu)数量为最理想状态 [[email protected] ~]# w 19:54:39 up 2 days, 11:28, 4 users, load average: 0.00, 0.01, 0.05 USER TTY FROM [email protected] IDLE JCPU PCPU WHAT root

学习笔记-性能测试-概述

性能测试的目的,什么是性能测试? 目的主要有四点:1评估系统能力,2寻找系统弱点(瓶颈),3系统调优,4验证系统可靠性,稳定性. 通俗的来说,性能测试的目的就是验证系统好不好用,就像功能测试验证系统是否可以用. 比较官方点的定义是: 是指在某个特定的硬件.软件.网络环境下通过自动化的测试工具模拟多种正常.峰值以及异常负载条件来对系统的各项性能指标进行测试. 性能测试的步骤? 设计测试方案 选择测试工具 搭建测试环境 设计测试场景 执行测试 分析测试结果 性能选择的标准? 达到客户的需求 新系统至

蓝鲸EPICOR MES集成无线电子工票

一.Epicor MES集成功能图 二.EPICOR MES系统布署图 三.MES数据采集终端 1.发卡的简单方式 1)计划员下发工单时,将每个工单工序的信息存在ID中 2)车间主管和操作员收到工单生产指令后,工人根据自己的工序的完成情况,操作数据采集终端. 将产品的完成数量.不良品数量.完成时间等信息发送到服务端中,完成工序报数流程. 3)生产车间采集的数据,可以实时更新至ERP系统.(注:以上如ERP系统无接口,需要根据实际ERP系统进行分析后确定 2.效益 a) 实时性高.直接解决数据采集

LR技术篇

1.概述        在山东BOSS性能压力测试过程中,发现脚本对于整个压力测试过程的重要性,一个压力测试脚本录制和编辑修改得怎么样直接影响后面压力测试的执行.通常情况下,脚本应尽可能的精简,就像写代码一样.针对BOSS系统的特点,个人认为把单一业务录制成一个Action,并在脚本中添加Transaction,Find检查(可以采用URL-based scrīpt 方式录制并事先设定),Rendezvous,参数化等基本元素,然而有时我们会发现光有这些基本元素还不能满足我们的要求.比如在Con

山东BOSS性能压力测试

1. 概述 在山东BOSS性能压力测试过程中,发现脚本对于整个压力测试过程的重要性,一个压力测试脚本录制和编辑修改得怎么样直接影响后面压力测试的执行.通常情况下,脚本应尽可能的精简,就像写代码一样.针对BOSS系统的特点, 个人 认为把单一业务录制成一个Action,并在脚本中添加Transaction,Find检查(可以采用URL-based scrīpt 方式录制并事先设定),Rendezvous,参数化等基本元素,然而有时我们会发现光有这些基本元素还不能满足我们的要求.比如在Control

1.2-vmstat详解

vmstat   查看系统瓶颈 vmstat 1     1秒显示1次,一直显示 vmstat 1 5   1秒显示5次,然后退出 vmstat       1秒显示1次,然后退出 参数详解: procs 进程相关 查看CPU瓶颈 r 1秒内,有几个进程在run,使用CPU b 1秒内,被IO阻塞了多少个任务 memory 内存相关 swpd 多少K的数据量,被交换到虚拟内存.有些软件依赖虚拟内存,并不是内存不够用了. free 剩余物理内存 buff 剩余buff cache剩余cache s

监控系统状态命令与工具(w、vmstat、top、sar、nload)

监控系统状态 w/uptime查看系统负载cat /proc/cpuinfo 查看cpu核数vmstat 监控系统状态用法 vmstat 1 w命令 查看当前系统负载信息 [[email protected] ~]# w 22:36:39 up 1:20, 2 users, load average: 0.00, 0.01, 0.05 USER TTY FROM [email protected] IDLE JCPU PCPU WHAT root tty1 22:36 15.00s 0.01s

10.6 监控io性能 - 10.7 free命令 - 10.8 ps命令 - 10.9 查看网络状态 - 10.10 linux下抓包

- 10.6 监控io性能 - 10.7 free命令 - 10.8 ps命令 - 10.9 查看网络状态 - 10.10 linux下抓包 - 扩展tcp三次握手四次挥手 http://www.doc88.com/p-9913773324388.html  - tshark几个用法:http://www.aminglinux.com/bbs/thread-995-1-1.html  # 10.6 监控io性能 ![mark](http://oqxf7c508.bkt.clouddn.com/b