Linux系统的性能测试与性能分析

发表于:2012-12-03来源:一淘测试作者:若凌点击数:

Linux系统的性能测试与性能分析1 性能测试简介 性能测试的过程就是找到系统瓶颈的过程。 性能测试(包括分析和调优)的过程就是在操作系统的各个子系统之间取得平衡的过程。

Revision History

Version

Date

Author

Description

1.0

2011/5/26

dengwu@taobao.com

初稿

1.1

2011/6/23

dengwu@taobao.com

添加CPU分析

1.2

2012/2/20

dengwu@taobao.com

添加MEM,IO分析

1.3

2012/2/23

dengwu@taobao.com

更新工作原理

1.4

2012/2/25

dengwu@taobao.com

添加中断分析

1.5

2012/2/28

dengwu@taobao.com

添加网络分析

性能测试的过程就是找到系统瓶颈的过程。

性能测试(包括分析和调优)的过程就是在操作系统的各个子系统之间取得平衡的过程。

操作系统的各个子系统包括:

CPU

Memory

IO

Network

他们之间高度依赖,互相影响。比如:

1. 频繁的磁盘读写会增加对内存的使用

2. 大量的网络吞吐,一定意味着非常可观的CPU利用率

可用内存的减少可能增加大量的swapping,从而使系统负载上升甚至崩溃

2 应用程序类型

性能测试之前,你首先需要判断你的应用程序是属于那种类型的,这可以帮助你判断哪个子系统可能会成为瓶颈。

通常可分为如下两种:

CPU bound – 这类程序,cpu往往会处于很高的负载,当系统压力上升时,相对于磁盘和内存,往往CPU会首先到达瓶颈。Web server,mail server以及大部分服务类程序都属于这一类。

I/O bound – 这类程序,往往会频繁的访问磁盘,从而发送大量的IO请求。IO类应用程序往往利用cpu发送IO请求之后,便进入sleep状态,从而造成很高的IOWAIT。数据库类程序,cache服务器往往属于这种类型。

3 CPU

3.1 性能瓶颈

3.1.1 运算性能瓶颈

作为计算机的计算单元,其运算能力方面,可能出现如下瓶颈:

1. 用户态进程CPU占用率很高

2. 系统态(内核态)CPU占用率很高

测试CPU的运算性能,通常是通过计算圆周率来测试CPU的浮点运算能力和稳定性。据说Pentium CPU的一个运算bug就是通过计算圆周率来发现的。圆周率的计算方法,通常是计算小数点后104万位,通过比较运算时间来评测CPU的运算能力。

常用工具:

SUPER PI(π)

Wprime 与SuperPI不同的是,可以支持多核CPU的运算速度测试

FritzChess 一款国际象棋测试软件,测试每秒钟可运算的步数

突破CPU的运算瓶颈,一般只能靠花钱。比如提高时钟频率,提高L1,L2 cache容量或不断追求新一代的CPU架构:

Core -> Nehalem(E55x,如r710,dsc1100) -> Westmere –> Sandy Bridge

3.1.2 调度性能瓶颈

CPU除了负责计算之外,另一个非常重要的功能就是调度。在调度方面,CPU可能会出现如下性能瓶颈:

Load平均值超过了系统可承受的程度

IOWait占比过高,导致Load上升或是引入新的磁盘瓶颈

Context Switch过高,导致CPU就像个搬运工一样,频繁在寄存器(CPU Register)和运行队列(run queue)之间奔波

硬中断CPU占比接近于100%

软中断CPU占比接近于100%

超线程

超线程芯片可以使得当前线程在访问内存的间隙,处理器可以使用它的机器周期去执行另外一个线程。一个超线程的物理CPU可以被kernel看做是两个独立的CPU。

3.2 典型监控参数

3.2.1 参数含义

Load

Load是指CPU所有内核正在处理的任务加上处于等待队列中的进程数之和。

处于等待队列(run queue)中的进程包括TASK_RUNNING 和 TASK_UNINTERRUPTIBLE两种状态的任务:

? 处于可运行状态的进程

? 等待不可中断任务的进程

在一个双核的系统中,如果两个进程正在执行,有四个进程处于run quque当中,那么load就是6

Nice%

用户进程空间内,通过调用nice或setpriority系统调用改变过优先级的进程的CPU占用率

Iowait%

CPU等待IO操作的时间

Idle%

CPU空闲时间

Intr/s

分析linux系统的运行性能,Linux系统的性能测试与性能分析相关推荐

  1. Linux学习总结(49)——应当竭力避免在系统中运行的 Linux 命令

    前言 如果你是一个 Linux 新手,在好奇心的驱使下,可能会去尝试从各个渠道获得的命令.以下是 7 个致命的 Linux 命令,轻则使你的数据造成丢失,重则使你的系统造成瘫痪,所以,你应当竭力避免在 ...

  2. linux系统找运行指令,Linux系统常用指令总结

    一,系统的运行级别 0:关机 1:单用户模式(可以找回丢失的密码) 2:多用户状态没有网络服务 3:多用户状态有网络服务 4:系统未使用保留给用户 5:图形界面 6:系统重启 注意:在/etc/ini ...

  3. linux系统上运行sh,Linux系统下如何运行.sh文件的实现

    Linux系统下如何运行.sh文件的实现 在Linux系统下运行.sh文件有两种方法,比如我在root目录下有个datelog.sh文件 第一种(这种办法需要用chmod使得文件具备执行条件(x): ...

  4. linux启动设置运行级别,Linux的运行级别和设置开机启动服务的方式

    Linux的运行级别 什么是运行级别呢?简单点来说,运行级别就是操作系统当前正在运行的功能级别.级别是从0到6,具有不同的功能.这些级别定义在/ect/inittab文件中.这个文件是init程序寻找 ...

  5. linux 指定cpu运行线程,linux 线程与CPU绑定

    看到很多程序都是根据CPU个数来创建线程个数,当时很不理解他们之间的关系,请教了项目组的同事后才有了大致了解. 1. 相关系统函数 下面的函数可以通过man命令查询到.SYNOPSIS #define ...

  6. linux关闭后台运行命令,linux后台运行、关闭、查看后台任务常用命令

    一.& 加在一个命令的最后,可以把这个命令放到后台执行,如: [root@bqh-01 ~]# watch -n 3 "sh 1.sh"  #每3s在后台执行一次1.sh脚 ...

  7. linux安装eclipse运行web,Linux安装Tomcat,运行Eclipse,web项目

    到官网下载:https://tomcat.apache.org/download-80.cgi  在这里是8.5.39版本 下载tar,gz 提取解压后,我这里是放到opt目录下 cd  切换目录 / ...

  8. linux版php运行环境,Linux系统搭建PHP运行环境

    LAMP网站架构是目前国际流行的 Web 框架,该框架包括:Linux 操作系统,Apache 网络服务器,MySQL 数据库,所有组成产品均是开源软件,是国际上成熟的架构框架. 最近我在百度智能云上 ...

  9. linux系统的运行定义在,Linux系统运行级管理

    运行级的概念来自SystemV运行级别将启动过程分成不同的集合每个集合包含一 组脚本当init程序切换运行级到对应的级别时相应的脚本就被触发切换运行 级可以通过执行init[级别号]完成(比如在Lin ...

  10. linux中的运行模式,Linux系统运行模式介绍

    Linux运行模式 自由服务,即不需要用户独立去安装的软件服务,而是在系统安装好之后就可以直接使用的服务(内置服务). 运行模式也称为运行级别,属于linux的自有服务. 运行模式可以理解为一旦你开机 ...

最新文章

  1. Tivoli NetView
  2. java gson序列化_java – Gson多态序列化
  3. poj 1456 Supermarket 贪心+并查集(个人感觉有点难判断出来
  4. 为什么现在的游戏笔记本那么贵,动不动就上万块,组装机不好吗?
  5. 【渝粤教育】国家开放大学2018年春季 0133-22T大学物理 参考试题
  6. java代码格式_java 代码的基本格式
  7. 51单片机学习总结(七)红外通信和DS18B20
  8. Hadoop大数据平台搭建(超详细步骤)
  9. 基于hilbert变换的数字信号_基于Hilbert变换处理绝对重力仪测量数据
  10. 天翼云搭建socks5和搭建http
  11. Python暴力破解rar、zip压缩文件密码
  12. 微信小程序picker-view中的view的高度修改问题,只能用px单位
  13. 念叨了一年的游戏叙事书中文版终于出了
  14. python新疆自驾旅游推荐系统毕业设计源码111042
  15. React 源码中的 Object.seal
  16. java中使用length获取二维数组的长度
  17. 使用 DDL 语句分别创建仓库表、供应商表、产品表和入库表,并对其进行操作
  18. SQL Server—T-SQL编程
  19. Android摄像头:只拍摄SurfaceView预览界面特定区域内容(矩形框)---完整(原理:底层SurfaceView+上层绘制ImageView)...
  20. lammps 案例in文件汇总

热门文章

  1. 动态的GIF图怎么在电脑上制作
  2. c语言find和mid函数的使用方法,excel中mid函数和find函数用法
  3. Win7系统怎么删除休眠文件?
  4. 我们无法驱散雾霾,但能教会你正确选戴口罩!
  5. linux中fork函数详解,fork() 函数详解
  6. 雷军:目前一半精力投入小米汽车 争取15到20年进入世界前五
  7. 如何实现多风格选择样式实时切换?
  8. SpringMVC(一):SpringMVC简介、入门案例
  9. 持续集成之钉钉消息推送:2:推送消息格式说明
  10. 【我的ASM学习进阶之旅】 介绍一个基于gradle transform api和ASM的字节码插件平台ByteX