性能测试之Linux服务器性能指标

发表于:2023-1-20 09:38

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:微橙    来源:CSDN

  CPU使用率
  CPU使用率是单位时间内服务器CPU的使用统计,可以用除CPU空闲时间外其他时间占总CPU时间的百分比来表示,即:CPU使用率=1-CPU空闲时间/总CPU时间。
  命令:#top????????? //top工具间隔3s会动态滚动更新一次数据
  字段说明:
  us (user):用户态的CPU使用时间比例,是用户运行程序的真正时间,它不包括后面的ni时间;
  sy (system): 内核态的CPU使用时间比例,是操作系统的运行时间,操作系统运行时,用户运行程序往往处于等待状态;
  ni (nice): 表示低优先级用户态的CPU时间比例,取值范围为[-20,19],数值越大,则优先级越低;
  id (idle): 表示空闲的CPU时间比例,值越大,CPU空闲时间比例越高,利用率越低;
  wa (iowait): 表示处于IO等待状态的CPU时间比例;
  hi (hard interrupt): 表示处理硬中断的CPU时间比例;
  si (soft interrupt): 与hi相反,表示处理软中断的CPU时间比例;
  st (steal): 表示当前系统运行在虚拟机中被其他虚拟机占用的CPU时间比例。
  在性能测试中,系统整体的CPU使用率可以用(1-id)来计算。当us很高时,说明CPU时间主要消耗在用户代码上,可以从用户代码角度考虑优化性能;当sy很高时,说明CPU时间主要消耗在内核上,可以从是否系统调用频繁、CPU进程或线程切换频繁角度考虑性能的优化;当wa很高时,说明有进程在进行频繁的IO操作,可能是磁盘IO或者网络IO。
  一般情况下,如果%us+%sy<=70%,我们可以认为系统的运行状态良好。
  内存占用率
  Linux的系统内存管理机制遵循内存利用率最大化的原则。内核会将空余的内存划分为cached(不属于free),对于有频繁读取操作的文件或数据会被保存在cached中。因此,对于linux系统来说,可用于分配的内存不止free的内存,同时还包括cached的内存(其实还包括buffers的内存)。
  cached和buffers都属于缓存,它们的区别主要在于cached主要用来缓冲频繁读取的文件,它可以直接记忆我们打开的文件内容;而buffers主要用来给块设备做的缓冲大小,只记录文件系统的metadata以及tracking in-flight pages信息,比如存储目录里面的内容,权限等。
  top工具既可以查看系统CPU使用情况,也可以查看系统内存使用信息。
  命令:#top
  在性能测试中,经常会用到系统已用内存、物理已用内存、系统内存占用率以及物理内存占用率这几个指标,它们的计算公式如下:
  系统已用内存MemUsed=MemTotal-MemFree?????????? //包含buffers和cached
  物理已用内存-/+Used= MemTotal-MemFree-MemBuffers-MemCached
  系统内存占用率MemUsed%=(MemUsed/ MemTotal)*100%
  物理内存占用率-/+Used%=(-/+Used/ MemTotal)*100%
  一般情况下,系统内存占用率<=70%,我们可以认为系统的内存使用情况良好,如果超出则说明系统内存资源紧张。
  系统平均负载
  当发现系统出现卡断或者运行不顺畅时,我们可以通过uptime,top或者w命令来查看系统的负载情况。
  命令1:#uptime
  命令2:#top
  命令3:#w
  Linux的load average表示系统负载的平均值,显示的三个数值分别表示1分钟、5分钟和15分钟内的平均负载情况。这里的平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,可以简单的理解为平均负载就是系统平均活跃进程数。其中可运行状态是指正在使用CPU或者正在等待CPU的进程(处于R状态:Running或者Runnable的进程);不可中断状态的进程指的是正处于内核态关键流程中的进程,处于这个流程的进程是不可打断的,比如等待硬件设备的I/O响应。
  举个例子,当平均负载的值为4:
  对于只有1个CPU的系统,意味着平均有3个进程竞争不到CPU;
  对于拥有4个CPU的系统,意味着CPU利用率为100%;
  对于拥有8个CPU的系统,意味着CPU利用率为50%,有一半空闲。
  可以看出,当系统平均负载的值如果超过系统CPU的数量时,那么系统有可能会遇到性能瓶颈,要视具体情况而定。
  在性能测试中,我们也经常会通过比较1min、5min或者15min的值,来判断系统平均负载的变化情况:
  如果1min的值大于5min或者15min的值,说明负载在增加;
  如果1min的值小于5min或者15min的值,说明负载在减小。
  磁盘IO
  Linux服务器性能除了CPU和内存外,还有磁盘IO也是一种常用的性能指标。
  命令:#iostat –x –k 2 3???? //每隔2S输出磁盘IO的使用情况,共采样3次
  通过ll?/dev/mapper命令可以查看dm-x与磁盘逻辑卷的映射关系。
  字段说明:
  rrqm/s: 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并;
  wrqm/s: 每秒对该设备的写请求被合并次数;
  r/s: 每秒完成的读次数;
  w/s: 每秒完成的写次数;
  rkB/s: 每秒读数据量(kB为单位);
  wkB/s: 每秒写数据量(kB为单位);
  avgrq-sz:平均每次IO操作的数据量(扇区数为单位);
  avgqu-sz: 平均等待处理的IO请求队列长度;
  await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位);
  svctm: 平均每次IO请求的处理时间(毫秒为单位);
  %util: 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率;
  在性能测试中,我们可以重点关注iowait%和%util参数。其中iowait% 表示CPU等待IO时间占整个CPU周期的百分比,如果iowait值超过50%,或者明显大于%system、%user以及%idle,表示IO可能存在问题了;%util表示磁盘忙碌的情况,一般%util<=70%表示该磁盘IO使用状态良好。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号