2013年11月28日

性能测试常见问题

摘要: 名词解释性能测试FAQ1.性能测试的基本过程是什么?2.如何准备测试环境?3.准备环境时,由于条件限制,机器系统硬件环境可能不同,机器硬件的cpu主频,单双核,硬盘转速等对性能测试的影响情况如何,在准备测试中哪些因素可以较少考虑或者忽略?4.我们的机器本身会启很多自动服务,其对性能的影响如何?5.测试过程中应该收集哪些数据?应该怎么获得?6.是否打开cache,对性能测试有什么影响?7.系统缓存对性能测试有什么影响,如何减少这种影响?8.如何选择压力工具?9.如何准备压力词表?10.压力测试中,每组压力执行多长时间合适?11.如何配置压力?12.什么是极限,怎么知道已经到了极限?13. vms 阅读全文

posted @ 2013-11-28 23:57 argb 阅读(9128) 评论(0) 推荐(0) 编辑

Vmstat主要关注哪些数据?

摘要: 除特殊情况外,一般关注飘红部分任务的信息(procs)r(running) 在internal时间段里,运行队列中的进程数,即表示正在运行或者正在等待CPU时间的进程数,如果这个参数值超过服务器上cpu的数量,就可能存在 cpu瓶颈,有一些任务要等待执行。当业务繁忙的时候,不超过2倍cpu数量,还是可以认为合理的。 b(blocked) 在internal时间段里,被资源阻塞的任务数(I/0,页面调度,等等.),通常情况下是接近0的procs_blocked w(swapped):表示当前需要释放内存、交换出去的进程数量。正常情况下为0比较好CPU信息(cpu) us 在internal时间段 阅读全文

posted @ 2013-11-28 23:55 argb 阅读(406) 评论(0) 推荐(0) 编辑

Swap是个什么东东?

摘要: 要明白这个首先要知道什么是保护模式和实模式。以前的操作系统是实模式,例如dos。每个时候只有一个进程在跑,这个进程使用全部的物理内存。后来发展到保护模式,分时多进程。一个CPU上跑多个进程, 但进程不知道到底有多少内存可以用,它能访问内存最大地址。例如16位系统就能访问2^16byte,32位就是2^32位。但是实际上没有那么多内存阿?怎么办?保护模式就应运而生了。假设进程是一个刘祥,裁判(系统)一发令他就开始跑步。但是裁判说给你1秒,可以跑100米。于是刘祥开始跑步(内存地址),一秒后刘祥只跑了10米,裁 判吹哨说:刘祥你先歇会,我要去给王军霞吹哨呢,现记住你跑到哪里了(保护),等会从这里开 阅读全文

posted @ 2013-11-28 23:52 argb 阅读(469) 评论(0) 推荐(0) 编辑

Buffers与cached啥区别

摘要: A buffer is something that has yet to be “written” to disk.A cache is something that has been “read” from the disk and stored for later use对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached.什么时候内存会被交换,以及按什么方交换 阅读全文

posted @ 2013-11-28 23:51 argb 阅读(25900) 评论(1) 推荐(0) 编辑

Io性能分析

摘要: 一、iostat使用说明1、命令使用方法使用ixstat –x 1可以每隔1秒钟采集所有设备的io信息。其中的1类似于使用“vmstat1”后面的1。2、命令格式说明―――――――――――――――――――――――――――――――――――――――Linux 2.4.31-2bs(zjm-testing-ecom504.zjm.baidu.com)01/14/2008avg-cpu:%user%nice%sys%idle0.110.160.3799.37Device:rrqm/swrqm/sr/sw/srsec/swsec/srkB/swkB/s avgrq-szavgqu-szawaitsvct 阅读全文

posted @ 2013-11-28 23:48 argb 阅读(864) 评论(0) 推荐(0) 编辑

linux性能系列--块设备

摘要: 一、啥是块设备呢?回答:I/O设备大致分为两类:块设备和字符设备。块设备将信息存储在固定大小的块中,每个块都有自己的地址。数据块的大小通常在512字节到32768字节之间。块设备的基本特征是每个块都能独立于其它块而读写。磁盘是最常见的块设备。在大多数的UNIX操作系统中,块设备只支持以块为单位的访问方式,如磁盘等二、啥是flash卡呢?回答:固态硬盘(Solid State Disk、IDE FLASH DISK)是由控制单元和存储单元(FLASH 芯片)组成,简单的说就是用固态电子存储芯片阵列而制成的硬盘(目前最大容量为32GB),固态硬盘的接口规范和定义、功能及使用方法上与普通硬盘的完全 阅读全文

posted @ 2013-11-28 23:46 argb 阅读(611) 评论(0) 推荐(0) 编辑

linux性能系列--网络

摘要: 一、为啥网络监控不好做?回答:网络是所有子系统中最难监控的了。首先是由于网络是抽象的,更重要的是许多影响网络的因素并不在我们的控制范围之内。这些因素包括,延迟、冲突、阻塞等 等。由于网络监控中,需要查看许多设备的状态和参数,需要root权限才可以,建议测试时如果判断是是网络问题的话,请机器维护人员协助。二、网卡带宽对压力测试有什么影响?回答:对于压力较大,或者数据流量较大的服务,比如空间图片服务,可能会出现由于网卡跑满,而压力上不去的现象,此时机器负载较为正常,但压力上不去。这对于测试环境,这是一个比较容易的现象。比如zjm机房的出口是百兆的,很容易压满。此时需要根据情况,将压力分布开。当然也 阅读全文

posted @ 2013-11-28 23:44 argb 阅读(1411) 评论(0) 推荐(0) 编辑

linux性能系列--内存

摘要: 一、啥是内存呢?回答:内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。 内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。 内存是由内存芯片、电路板、金手指等部分组成的。想全面了解内存的请到威武的百科去看内存吧,真全啊!二、怎么查看系统内存的信息?回答:可以使用cat /proc/meminfo,如:三、如何查 阅读全文

posted @ 2013-11-28 23:43 argb 阅读(1604) 评论(0) 推荐(0) 编辑

linux性能系列--cpu

摘要: 一、先看看什么是CPU?回答:中央处理器(Central Processing Unit)的缩写,即CPU,CPU是电脑中的核心配件,只有火柴盒那么大,几十张纸那么厚,但它却是一台计算机的运算核心和控制核心。电脑中所有操作都由CPU负责读取指令,对指令译码并执行指令的核心部件。想了解详细的cpu介绍请去百科:CPU页面二、如何查看机器的cpu相关信息呢?回答:可以cat /proc/cpuinfo三、怎么查看系统CPU的负载情况?回答:方法有很多,比如工具使用等,如下用vmstat关于vmstat的详细介绍请点击这里四、如何查看某个进程的cpu使用情况呢?回答:方法有很多,比如工具使用等,如下 阅读全文

posted @ 2013-11-28 23:42 argb 阅读(308) 评论(0) 推荐(0) 编辑

wget 使用技巧

摘要: wget 使用技巧wget是一个命令行的下载工具。对于我们这些 Linux 用户来说,几乎每天都在使用它。下面为大家介绍几个有用的 wget 小技巧,可以让你更加高效而灵活的使用 wget。$ wget -r -np -nd http://example.com/packages/这条命令可以下载 http://example.com 网站上 packages 目录中的所有文件。其中,-np的作用是不遍历父目录,-nd表示不在本机重新创建目录结构。$ wget -r -np -nd --accept=iso http://example.com/centos-5/i386/与上一条命令相似,但 阅读全文

posted @ 2013-11-28 23:31 argb 阅读(212) 评论(0) 推荐(0) 编辑

Linux 系统性能监控命令详解

摘要: Linux 系统性能监控命令详解CPUMEMORYIONETWORKLINUX进程内存占用查看方法系统负载过重时往往会引起其它子系统的问题,比如:->大量的读入内存的IO请求(page-in IO)会用完内存队列;->大量的网络流量会造成CPU的过载;->CPU的高使用率可能正在处理空闲内存队列;->大量的磁盘读写会消耗CPU和IO资源。我们测试的系统,总的来说可分为二类:第一,IO Bound,这类系统会大量消耗内存和底层的存储系统,它并不消耗过多的CPU和网络资源(除非系统是网络的)。IO bound系统消耗CPU资源用来接受IO请求,然后会进入休眠状态。数据库通常 阅读全文

posted @ 2013-11-28 23:07 argb 阅读(15603) 评论(0) 推荐(0) 编辑

提高性能测试结果的可信程度

摘要: 前言为了给出准确的性能测试结论,必须依靠准确的性能测试数据。有很多因素都会对性能测试产生影响,进而导致性能结果的不准确。为了提高性能数据的可信程度,测试过程中应尽量避免这些因素。影响评估测试结果可信度的因素测试环境硬件环境主要指我们的测试机的配置,应该和线上机器采用相同配置。除了cpu,内存大小要一致外,硬盘的大小、swap等也要一致。如果有大量io的话,work分区的硬盘剩余空间也会影响性能。因为如果剩余空间不一致,会造成磁头开始写硬盘时的位置不一样,那么靠内圈的性能会差。同时,频繁的拷贝删除会造成磁盘碎片,也会影响性能。软件环境在启动被测程序时,还要清楚线上有哪些程序是同时启动的,需要在测 阅读全文

posted @ 2013-11-28 23:03 argb 阅读(669) 评论(0) 推荐(0) 编辑

从数据出发

摘要: 从性能数据出发,找到系统的性能瓶颈,进而进行性能优化,是进行性能分析的目的。但遗憾的是,解决一个性能瓶颈,往往又会出现另外的瓶颈或者其他问题,所以性能优化更加切实的目标是做到在一定范围内使系统的各项资源使用趋向合理和保持一定的平衡。系统运行良好的时候恰恰也是各项资源达到了一个平衡体,任何一项资源的过度使用都会造成平衡体系破坏,从而造成系统负载极高或者响应迟缓。比如CPU过度使用会造成大量进程等待CPU资源,系统响应变慢,等待会造成进程数增加,进程增加又会造成内存使用增加,内存耗尽又会造成虚拟内存使用,使用虚拟内存又会造成磁盘IO增加和CPU开销增加(用于进程切换、缺页处理的CPU开销)性能瓶颈 阅读全文

posted @ 2013-11-28 23:02 argb 阅读(444) 评论(0) 推荐(0) 编辑

基于场景的性能测试设计

摘要: “为了测试目的而设计的测试用例场景”主要根据测试设计人员的经验来进行,但是仍然要参考用户的实际场景,用户实际使用场景是设计所有测试用例的依据。例如一些业务系统,虽然备份历史数据的周期为一年,但是设计大数据量测试用例时仍然包含了系统运行一个月、半年等的数据量模拟测试,因为这些均属于用户的典型场景。 综合上面可以看出,性能测试用例设计首先要分析出用户现实中的典型场景,然后参照典型场景进行设计。实际项目中分析场景一般不会孤立的分析某一特定类型场景,而是把两种或者几种类型场景结合起来进行分析设计,这样做主要是为了选择更典型的场景和节省一些测试成本。例子下面将以图1所示的某视频点播网站做为示例,开始逐. 阅读全文

posted @ 2013-11-28 23:01 argb 阅读(4085) 评论(1) 推荐(0) 编辑

性能测试模型和评估

摘要: 性能的测量性能只有在你决定测量性能的时候性能才是重要的。但一些人发现在测量性能的时候,很难确定需要测量哪个度量值,而且就算他们手头上有了这些信息之后也不知道该怎么办。结果导致了很多人开始竭尽全力地获得所有相关信息。这当然也导致了系统负载过重和获得一些看起来没有意义的信息。在这样的情况下,一些人完全放弃了测量,开始凭着他们的直觉对系统性能调优。我们当然不能这么干,而应该系统地并且一步一步地对它进行测量。首先,理解为什么要测量性能和通过这些工作你想达到一个什么目标。如果你没有一个目标,那么就没有办法去完成了。接下来你需要理解你测量的东西和它们的意义。这可能需要创建一个模型用于跟踪你的数据。只有通过 阅读全文

posted @ 2013-11-28 22:59 argb 阅读(5030) 评论(0) 推荐(1) 编辑

Linux性能监控

摘要: Linux性能监控的目的是找到系统的瓶颈,并且调节系统来设法消除这些瓶颈。我们在监控性能的时候重点在于监视一下子系统:1.CPU2.MEMORY3.IO4.NETWORK但这些系统都是彼此依赖,不能单独只看其中一个。当一个系统负载过重时往往会引起其它子系统的问题,比如说: ->大量的读入内存的IO请求(page-in IO)会用完内存队列; ->大量的网络流量会造成CPU的过载; ->CPU的高使用率可能正在处理空闲内存队列; ->大量的磁盘读写会消耗CPU和IO资源。我们测试的系统,总的来说可分为二类:第一,IO Bound,这类系统会大量消耗内存和底层的存储系统,它 阅读全文

posted @ 2013-11-28 22:57 argb 阅读(1230) 评论(0) 推荐(0) 编辑

linux环境下 C++性能测试工具 gprof + kprof + gprof2dot

摘要: 1.gprof很有名了,google下很多教程g++ -pg -g -o test test.cc./test //会生成gmon.outgprof ./test > prof.log看一下对于我前面提到的huffman编码压缩+解码解压缩全部过程的一个程序对于生成的prof.log ,wow, 很有用处的但是看起来有点累,不是吗:)Code Flat profile: Each sample counts as 0.01 seconds. % cumulative self self total time seconds seconds calls s/call s/call name 阅读全文

posted @ 2013-11-28 22:55 argb 阅读(991) 评论(0) 推荐(0) 编辑

Linux性能监控(程序篇)

摘要: 性能数据的监控,除了针对整机进行外,还要求我们对某一运行的程序单独进行。常用的程序监控命令有ps和top。Psps命令最常用的还是用于监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信的,所以假如需要检测其情况,便能够使用ps命令了。ps是用来报告程序执行状况的指令,可以搭配kill指令随时中断,删除不必要的程序。使用方式:ps [options] [--help]ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义。参数说明-A列出所有的程序-w显示加宽可以显示较多的资讯-au显示较详细的资讯-aux显示所有包含其他使用者的进程-e显示任何进程(此参数的 阅读全文

posted @ 2013-11-28 22:50 argb 阅读(536) 评论(0) 推荐(0) 编辑

Linux性能测试工具

摘要: Linux性能测试工具在测试中,我们不仅需要查看系统日志信息,而且还要使用大量的性能监测工具来关注某些地方,如内存、CPU等。在Linux系统中,所有的运行参数保存在虚拟目录/proc中,换句话说,我们使用的性能监控工具取到的数据值实际上就是源自于这个目录,下面就让我们了解一下这些常用的性能监控工具。工具功能描述uptime系统平均负载率dmesg硬件/系统信息top进程进行状态iostatCPU和磁盘平均使用率vmstat系统运行状态sar实时收集系统使用状态free内存使用率traffic-vis网络监控(只有SUSE有)pmap进程内存占用率ulimit系统资源使用限制mpstat多处理 阅读全文

posted @ 2013-11-28 22:49 argb 阅读(738) 评论(0) 推荐(0) 编辑

导航