linux服务器监控性能测试基础知识

服务器性能测试的范围

测试目的

发现服务器的性能瓶颈。配置的不同能够承载的最大任务数不同,能够承载的压力也是不同的

测试范围及性能指标
  • cpu
  • 网络:
  • 内存:可以看成临时存储数据的
  • 版本:操作系统的版本与软件版本
  • 磁盘:数据持久化,硬盘不损坏数据就不会消失
进程与线程

定义与区别

  • 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位
  • 线程是进程的一个实体,是cpu调度和分派的基本单位,他是比进程更小的能够独立运行的基本单位,线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源。一个线程可以创建和撤销另一个线程
  • 一个线程只能属于一个进程,一个进程可以有多个线程
  • 线程是进程工作的最小单位
  • 一个进程会分配一个地址空间,进程与进程之间不共享地址空间。既不共享内存
  • 同一个进程下的不同的多个线程,共享父进程的地址空间
  • 线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步
  • 线程作为调度和分配的基本单位,进程作为拥有资源的基本单位

进程的优点:

  • 每个进程互相独立,不影响主程序的稳定性,子进程崩溃不影响其他进程
  • 通过增加CPU,就可以扩充性能
  • 可以尽量减少线程加锁与解锁的影响,极大的提高了性能
    进程的缺点
  • 逻辑控制复杂,需要和主程序交互
  • 多进程调度开销大
    线程的优点
  • 程序逻辑和控制方式简单
  • 所有线程可以直接共享内存和变量等
    线程的缺点
  • 每个线程与主程序共用地址空间,最大内存地址受限
  • 线程之间的同步和加锁不易控制
  • 一个线程的崩溃可能影响到整个程序的稳定性

linux监控命令

  • top:能够实时监控系统的运行状态,并且可以按照cpu及内存等进行排序。
top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]
参数
 1. -h:帮助
 2. -p :监控指定的进程。当监控多个进程时,进程ID以逗号分隔。这个选项只能在命令行下使用
 top任务区命令
 1. M:按内存使用率排序
 2. P:按照CPU使用率排序
 3. z:彩色/黑白显示
  top中的load average :系统的运行队列的平均利用率。也可以认为是可运行进程的平均数。三个值分别表示在最后的1分钟、5分钟、15分钟的平均负载值
  一般选择5分钟、15分钟
  top说明:
  在单核cpu中load average 的值为1时表示满负荷状态。同理在多核cpu中满负载的load average的值为1*cpu核数
  

在这里插入图片描述

  • vmstat参数
    可以监控操作系统的进程状态、内存、虚拟内存、磁盘IO、cpu的信息。
vmstat [-a] [-n] [-S unit] [delay [ count ]]
vmstat参数

 1. -S :使用指定单位显示。参数有k、 k、m、M,分别代表1000、1024、1000000、1048576字节。默认单位为K

vmstat第一个参数代表着时间间隔,第二个是代表显示的个数
在这里插入图片描述

  • free
    能够监控系统的内存使用状态。其中,total:总计物理内存的大学;
    Used:已使用多大;
    Free: 可用有多少;
    shared : 多个进程共享的内存总额;
    buffers/cached:磁盘缓存的大小
    free -h 就是多了一个单位,默认是k
    在这里插入图片描述
  • mpstat
    mpstat最大的特点是:可以查看多核心cpu中每个计算核心的统计数据
mpstat [-P {|ALL}] [interval [count]]

 1. -P:监控哪一个核心/cpu ,cpu在[0,cpu个数-1]中取值
 2. internal:相邻的两次采样的间隔时间,单位是秒
 3. count:就是一共监控多少次,不写的话就会一直监控
mpstat需要注意点:
但没有参数的时候,mpstat则显示系统启动以后所有信息的平均值。
有interval时,第一行的信息自动系统启动以来的平均值。
从第二行开始,输出为前一个interval时间段的平均时间

监控所有cpu,监控的时间间隔是1,监控5次
在这里插入图片描述

  • 实时监控-网络
netstat参数说明

 1. -n : 拒绝显示别名,能显示数字的全部转化成数字
 2. -l : 仅列出在Listen(监听)的服务状态
 3. -t(tcp) : 显示tcp相关选项
 4. -u (UDP):仅显示udp相关选项
 5. -i : 显示自动匹配皆苦的信息
 6. -c : 没隔一个固定时间,执行该netstat命令
 7. -p :显示建立相关链接的程序名
 

在这里插入图片描述

  • 实时监控-磁盘
    iostat是对系统磁盘IO操作进行监控,它的输出主要显示磁盘的读写操作的统计信息。同时给出cpu的使用情况
    iostat用法:

 1. iostat [-c | -d] [-k | -m] [-t] [-V] [-x] [device [...] | ALL] [ -p [device | ALL ]] [ interval [count]]
 2. -x device 输出指定要统计的磁盘设备名称,默认为所有磁盘设备
 

每秒钟对磁盘sda进行监控
%util的意思是繁忙程度,越大表示越不好
在这里插入图片描述

  • 万能命令
    1、sar :System Activity Reporter 系统活动情况报告是目前Linux上最为全面的系统性分析工具之一,可以从多方面对系统的活动进行报告
    2、文件的读写情况,系统调用的使用情况,磁盘I/O、CPU效率、内存使用状况,进程活动及IPC有关的活动等
sar [options] [-A] [-o file] t [n]
在命令行中,
n和t两个参数组合起来定义采样间隔和次数
t为采样间隔,是必须有的参数
n为采样次数,是可选的,默认值是1
-o file 表示将命令结果以二进制格式存放在文件中,file在此处不是关键字,是文件名。
options为命令行选项
 参数
 1. -A:所有报告的总和
 2. -u:CPU利用率
 3. -v:进程、节点、文件和锁表状态
 4. -r:显示系统内存的使用情况
 5. -B:内存分页情况
 6. -b:缓冲区使用情况

  • linux下的进程追踪
    strace简介
    strace命令是一个集诊断、调试、统计与一体的工具,我们可以使用strace对应用的系统调用和信号传递的跟踪结果来对应用进行分析,以达到解决问题或是了解应用工作过程的目的
-p:跟踪指定的进程
-f:跟踪由fork子进程系统调用
-c:统计每一系统调用的执行的时间,次数和出错的次数等
-t:在输出中的每一行前加上时间信息。-tt时间确定到微秒级
-e expr:输出过滤器,通过表达式,可以过滤掉你不想要输出
-o filename :默认strace将结果输出到stdout。通过-o可以将输出写入到filename文件中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值