返回顶部
扶摇直上九万里,展翅高飞岂可待。

Jmeter——为什么要做服务器性能监控及综合监控命令(五)

1. 软件系统架构

1676459489(1).png

2. 综合监控命令--top

  • top命令用法

top命令经常用来监控linux的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况。

top的使用方式 top [-d number] | top [-bnp]

参数解释:

-d:number代表秒数,表示top命令显示的页面更新一次的间隔。默认是5秒。 -b:以批次的方式执行top。 -n:与-b配合使用,表示需要进行几次top命令的输出结果。 -p:指定特定的pid进程号进行观察。

在top命令显示的页面还可以输入以下按键执行相应的功能(注意大小写区分的):

?:显示在top当中可以输入的命令 P:以CPU的使用资源排序显示 M:以内存的使用资源排序显示 N:以pid排序显示 T:由进程使用的时间累计排序显示 k:给某一个pid一个信号。可以用来杀死进程 r:给某个pid重新定制一个nice值(即优先级) q:退出top(用ctrl+c也可以退出top)。

top各输出参数含义
下面是使用top命令来进行性能检测的截图:

图一(ubuntu):

图二(centos):

一、top前5行统计信息

第1行:top - 05:43:27 up 4:52, 2 users, load average: 0.58, 0.41, 0.30
第1行是任务队列信息,其参数如下:

内容 含义
05:43:27 表示当前时间
up 4:52 系统运行时间 格式为时:分
up 4:52 系统运行时间 格式为时:分
2 users 当前登录用户数
load average: 0.58, 0.41, 0.30 系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

load average: 如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

第2行:Tasks: 159 total, 1 running, 158 sleeping, 0 stopped, 0 zombie
第3行:%Cpu(s): 37.0 us, 3.7 sy, 0.0 ni, 59.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
第2、3行为进程和CPU的信息
当有多个CPU时,这些内容可能会超过两行,其参数如下:

内容 含义
159 total 进程总数
1 running 正在运行的进程数
158 sleeping 睡眠的进程数
0 stopped 停止的进程数
0 zombie 僵尸进程数
37.0 us 用户空间占用CPU百分比
3.7 sy 内核空间占用CPU百分比
0.0 ni 用户进程空间内改变过优先级的进程占用CPU百分比
59.3 id 空闲CPU百分比
0.0 wa 等待输入输出的CPU时间百分比
0.0 hi 硬中断(Hardware IRQ)占用CPU的百分比
0.0 si 软中断(Software Interrupts)占用CPU的百分比
0.0 st
第4行:KiB Mem: 1530752 total, 1481968 used, 48784 free, 70988 buffers
第5行:KiB Swap: 3905532 total, 267544 used, 3637988 free. 617312 cached Mem
第4、5行为内存信息
其参数如下:
内容 含义
KiB Mem: 1530752 total 物理内存总量
1481968 used 使用的物理内存总量
48784 free 空闲内存总量
70988 buffers(buff/cache) 用作内核缓存的内存量
KiB Swap: 3905532 total 交换区总量
267544 used 使用的交换区总量
3637988 free 空闲交换区总量
617312 cached Mem 缓冲的交换区总量。
3156100 avail Mem 代表可用于进程下一次分配的物理内存数量
上述最后提到的缓冲的交换区总量,这里解释一下,所谓缓冲的交换区总量,即内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小。相应的内存再次被换出时可不必再对交换区写入。

计算可用内存数有一个近似的公式:
第四行的free + 第四行的buffers + 第五行的cached
二、进程信息

内容 含义
PID 进程id
PPID 父进程id
RUSER Real user name
UID 进程所有者的用户id
USER 进程所有者的用户名
GROUP 进程所有者的组名
TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
PR 优先级
NI nice值。负值表示高优先级,正值表示低优先级
P 最后使用的CPU,仅在多CPU环境下有意义
%CPU 上次更新到现在的CPU时间占用百分比
TIME 进程使用的CPU时间总计,单位秒
TIME+ 进程使用的CPU时间总计,单位1/100秒
%MEM 进程使用的物理内存百分比
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SWAP 进程使用的虚拟内存中,被换出的大小,单位kb
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
CODE 可执行代码占用的物理内存大小,单位kb
DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
SHR 共享内存大小,单位kb
nFLT 页面错误次数
nDRT 最后一次写入到现在,被修改过的页面数。
S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
COMMAND 命令名/命令行
WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
Flags 任务标志

3. 综合监控命令--free

1、free命令使用
free命令简介
free 命令能够显示系统中物理上的空闲和已用内存,还有交换内存,同时,也能显示被内核使用的缓冲和缓存

free命令语法

语法:free [param]
1
param可以为:

-b:以Byte为单位显示内存使用情况;

-k:以KB为单位显示内存使用情况;

-m:以MB为单位显示内存使用情况;

-o:不显示缓冲区调节列;

-s<间隔秒数>:持续观察内存使用状况;

-t:显示内存总和列;

-V:显示版本信息。

free命令使用

Mem:表示物理内存统计

total:表示物理内存总数(total=used+free)

used:表示系统分配给缓存使用的数量(这里的缓存包括buffer和cache)

free:表示未分配的物理内存总数

shared:表示共享内存

buffers:系统分配但未被使用的buffers 数量。

cached:系统分配但未被使用的cache 数量。

-/+ buffers/cache:表示物理内存的缓存统计

(-buffers/cache) 内存数: (指的第一部分Mem行中的used – buffers – cached)
(+buffers/cache) 内存数: (指的第一部分Mem行中的free + buffers + cached)
(-buffers/cache)表示真正使用的内存数, (+buffers/cache) 表示真正未使用的内存数

Swap:表示硬盘上交换分区的使用情况

4. 综合监控命令--ulimit

  1. ulimit用于显示系统资源限制的信息
  2. 语法:ulimit [param]
  3. param参数可以为:
  • -a  显示目前资源限制的设定。
  • -c <core文件上限>  设定core文件的最大值,单位为区块。
  • -d <数据节区大小>  程序数据节区的最大值,单位为KB。
  • -f <文件大小>  shell所能建立的最大文件,单位为区块。
  • -H  设定资源的硬性限制,也就是管理员所设下的限制。
  • -m <内存大小>  指定可使用内存的上限,单位为KB。
  • -n <文件数目>  指定同一时间最多可开启的文件数。
  • -p <缓冲区大小>  指定管道缓冲区的大小,单位512字节。
  • -s <堆叠大小>  指定堆叠的上限,单位为KB。
  • -S  设定资源的弹性限制。
  • -t <CPU时间>  指定CPU使用时间的上限,单位为秒。
  • -u <程序数目>  用户最多可开启的程序数目。
  • -v <虚拟内存大小>  指定可使用的虚拟内存上限,单位为KB

image.png

5. 综合监控命令--iostat

iostat用于输出CPU和磁盘io的相关的统计信息

iostat

image.png

其中

avg-cpu:主要的是CPU的信息,如果是多个cpu的话是cpu的平均值,其中重点关注的是iowait,表示的是用于等待io完成请求的时间

  • Device:表示的是各个磁盘io的统计
  • Device:以sdX的形式显示磁盘的名称
  • tps:每秒进程下发的进程的读写请求数量
  • kb_read/s: 每秒从驱动器读入的数据流量以KB为单位
  • kb_wrtn/s: 每秒从驱动器写入的数据量,单位是K
  • kb_read: 读入的数据总量,单位是k
  • kb_wrtn: 写入的数据总量,单位是K

iostat的语法

用法

iostat[选项][<时间间隔>[<次数>]]

-c: 只是单独的输出cpu的信息不包括Device的信息

-d: 单独输出Device的信息不包括CPU的信息

-k/-m: 输出的结果是以kb或者是mb为单位,而不是以扇区数为单位

-x:输出更详细的磁盘io的信息

interval/count: 每次输出的间隔时间。count表示的是输出次数,没有count表示的是循环输出

image.png
各个字段选项的含义:

  • 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队列非空的时间比率

重点关注的是:

1、iowait%:表示的是cpu等待的是io时间占整个cpu周期的百分比。如果iowait%的值大于50%或者是明显的高于%system、%user、%idle 表示io可能存在问题

2、avgqu-sz表示的是磁盘io的队列长度,即io的等待个数

3、await:表示的是io请求时间,等待时间和处理时间

4、svctm:表示的是每次请求的处理的时间

5、%util表示的是磁盘的忙碌情况,如果在80%就是磁盘可能处于忙碌的状态

6. 网络监控命令--netstat

1、netstat监控命令

netstat命令是用于监控进出网络的包和网络接口统计的命令行工具

语法:netstat [param]

param参数可以为:

  • -h : 查看帮助
  • -r : 显示路由表
  • -i : 查看网络接口
    2、linux检查网络
    到网络配置文件目录

cd /etc/sysconfig/network-scripts

查看目录下的文件,找到ifcfg开头的文件

ls -ll

en33这个后缀不固定,根据自己系统的查看

vi /etc/sysconfig/network-scripts/ifcfg-en33

修改ONBOOT=yes,ONBOOT是指明在系统启动时是否激活网卡,只有在激活状态的网卡才能去连接网络,进行网络通讯其中en33是设备名,设置了linux网络,需要重启网络,可以用命令:

service network restart

posted @ 2023-03-16 09:51  孙凯玉  阅读(83)  评论(0编辑  收藏  举报