Linux系统的性能测试与性能分析
作者:网络转载 发布时间:[ 2012/11/30 11:40:05 ] 推荐标签:
每秒钟处理的中断数
Hi%
服务于IRQs的时间占比
Si%
服务于Soft IRQs的时间占比
St%
关于st的解释,在IBM的一份文档里,有一段描述:
IBM’s definition of steal time is actually pretty good:
Steal time is the percentage of time a virtual CPU waits for a real CPU while the hypervisor is servicing another virtual processor.
3.3 工作原理
为了更好地理解CPU的性能参数,需要了解如下一些概念
3.3.1 进程及进程调度算法
什么是线程
图3:进程和线程的数据结构
2. 进程的状态
可运行状态(TASK_RUNNING)
不可中断的等待状态(TASK_UNINTERRUPTIBLE)
暂停状态(TASK_STOPPED)
跟踪状态(TASK_TRACED)
僵死状态(EXIT_ZOMBIE)
问题 Wait io%包含在idle%当中吗?
从下面top实例可以看出,wait io%不属于idle%,等IO的过程被叫做uninterruptible sleep
Cpu1 : 2.7%us, 3.0%sy, 0.0%ni, 3.7%id, 89.7%wa, 0.0%hi, 1.0%si, 0.0%st
从性能测试角度来看,我倾向于这样理解线程:
1. 线程和进程的确不同,因为他们可以共享进程的资源,如地址空间等。因此在上下文切换的过程中可能会产生较小的性能损耗。
2. 站在调度器(scheduler)的角度来说,线程是一个进程,或者说是一个轻量级的进程(Light Weight Process)。Kernel实际上是通过轻量级的进程来支持多线程应用程序的。我们经常用的线程开发库pthread是通过将轻量级进程和线程关联起来,来实现的。这样既可以实现资源的共享,又可以让每个线程被调度器独立调度。
2. 进程的状态
可运行状态(TASK_RUNNING)
不可中断的等待状态(TASK_UNINTERRUPTIBLE)
暂停状态(TASK_STOPPED)
跟踪状态(TASK_TRACED)
僵死状态(EXIT_ZOMBIE)
问题 Wait io%包含在idle%当中吗?
从下面top实例可以看出,wait io%不属于idle%,等IO的过程被叫做uninterruptible sleep
Cpu1 : 2.7%us, 3.0%sy, 0.0%ni, 3.7%id, 89.7%wa, 0.0%hi, 1.0%si, 0.0%st
3.3.4 硬中断
性能测试中关注的中断,主要由自于IO设备所产生,如键盘的一次按键,网卡的收报等等。
IRQ
IO设备所发出的IRQ(Interrupt ReQuest)请求叫做中断请求(可屏蔽中断)
每个能够发出中断的IO设备都有一个IRQ输出线(部分高级前兆网卡,和大部分万兆网卡都多条IRQ输出线)。每条IRQ输出线和可编程中断控制器(Programmable Interrupt Controller)引脚相关联。
每个IRQ输出线的中断信号,只能被一个CPU core处理,IRQ线从0开始编号。
如何观察IRQ的状态:
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11