zoukankan      html  css  js  c++  java
  • 性能测试三十:监控之命令监控

    性能监控是性能测试过程中非常重要的一个环节,当在压测过程中出现性能瓶颈时,需要综合详细的监控数据对问题进行分析。整个系统架构中的每一个环节都需要做监控(压力机、网络、各中间件、各服务器硬件资源等)。性能监控做好了,就能帮助你快速的定位问题,找到系统的性能瓶颈。

    操作系统级别监控

    cpu监控

    Top命令:

    Top命令是Linux下一个实时的、交互式的,对操作系统整体监控的命令,可以对CPU、内存、进程监控。 是Linux下最常用的监控命令。

    起一个项目,给点压力,看看效果

    一个并发,永远跑,看一下

    load average:过去某段时间内CPU平均的负载情况,(排队要执行的的进程数)

    第一个值所在的位置:过去一分钟的

    第二个值所在的位置:过去五分钟的

    第三个值所在的位置:过去十五分钟的

     一般来说,排队的数量最好不要超过cpu的核数,比如4核,但是数字大于4,则代表有进程在排队,等待执行

    Task:当前有多少个任务

    Cpu(s):反映cpu的一些数据:

      us:用户使用(用户进程,如myslq、tomcat、qq)的cpu的百分比

      sy:系统使用的cpu的百分比

      ni:指进程的优先级,一般都是0,不用管

      id:idle,空闲的:=1-us-sy

      wa:wait,因为有些任务是需要些磁盘的(如tomcat需要写日志),而CPU的速度比磁盘写入的速度更快,所以有了这个等待写入数据的状态,如果这个值比较大的话,说明磁盘写入速度比较慢,压力比较大,磁盘那块很可能就有问题

      hi、si、st:跟中断相关的,不用关注

    按1会展示每个核的具体情况,由于我的是单核,所以按了1也只有这一个

     

    以下截图为16核的

    Mem:memory,内存,一般如果是要看内存不使用top命令,下面有一个专门看内存的命令

    Swap:交换分区,磁盘上的一块区域,当内存满时,可以充当临时内存,但是速度还是比真实的内存满很多,比如,系统一直运行中,到某个时候,内存已经满了,这个时候还想启动一个程序,cpu会检测,有哪些程序已经长时间没活动了,但是还占用着内存,这个时候,会把这些程序占用的内存,转移到swap空间中,腾出一些空间保证用户能继续启动程序(如WPS启动着最小化过一段时间不用,再切换回来的时候,会很卡),所以说这个指标反映出内存是否足够的情况,若used数据一直在涨,则说明内存不足

    RES:当前进程所占的真实内存的大小

    %CPU:指当前进程占cpu使用的比例,为所有核占用之和,比如8核,这里有可能统计出来是800

    %MEM:当前进程占用内存的百分比

     top命令默认是以占用cpu的比例降序排列的,若想以占用内存的比例来排序,按M即可,按P切回cpu

    内存监控

    free命令可以查看当前系统内存的使用情况

    free -m 以MB为单位显示系统内存的使用情况,同理,也可以使用-k、-g等其他的单位显示,此处换算单位精度的问题,检测为1006M,实际为1G

    free命令从两个维度统计了内存的使用情况
    第一行Mem:

    从操作系统角度统计内存的total(总共)、used(已使用)、free(剩余)、buffers(往内存写内容的时候的缓存)、cached(读内存的时候的缓存,类似于Redis和Mysql的关系)

    所以,实际剩余内存=free+buffer+cached

    第二行-/+buffers:

    从应用程序角度统计内存的total、used、free、buffers、cached

    buffer和cache
    两者都是Linux下的缓存机制,其中buffer为写操作的缓存,cache为读操作的缓存

    swap
    交换空间,磁盘上的一块空间,当系统内存不足时,会使用交换空间

     磁盘监控

    iostat命令可以查看当前机器磁盘io的数据

    命令:iostat -x -k 1
    -x:展示磁盘的扩展信息

    -k:以k为单位展示磁盘数据

    1:每1秒刷新一次

    avg-cpu:监控cpu的指标

    Device:真正监控磁盘的数据,一般数据库服务器消耗磁盘比较多,应用程序一般消耗磁盘不多,消耗cpu比较多

    展示结果
    util:磁盘IO使用率,单位%,反映磁盘的繁忙程度,上限100%,一般达到90%就代表磁盘压力非常大了,已经达到瓶颈了, 当看到util比较大 的时候,看看rkb和wkb的情况,看看是那个造成的
    r/s:每秒读请求数
    w/s:每秒写请求数
    rkb/s:每秒读磁盘字节数
    wkb/s:每秒写磁盘字节数

    df命令可以查看当前系统磁盘空间的使用情况
    命令:df -h

    磁盘速度测试,如果磁盘读写的性能极差,那么压测出来的结果极有可能不准,比如我的2.7M,肯定太小了,一般至少是50多MB/秒
    命令:dd if=/dev/zero of=/export/ddtest bs=8k count=1000000 oflag=direct

     过几秒钟后Ctrl+c结束

  • 相关阅读:
    Topic model的变种及其应用[1]
    关于LDA的文章
    优秀的基于VUE移动端UI框架合集
    uwsgi部署django,里的request调用的接口响应慢解决方法
    vue部署到nginx服务下,非根目录,刷新页面404怎么解决?
    vue 项目部署到nginx
    CentOS7.2安装nginx失败
    vue-router总结
    vuerouter
    django1
  • 原文地址:https://www.cnblogs.com/malinalian/p/10583102.html
Copyright © 2011-2022 走看看