Linux 基础教程 36-查看系统性能

uptime

    uptime命令功能比较简单,主要功能如下所示:

  • 查看服务器的开机时长
  • 查看CPU负载
基本用法
uptime
用法示例
[root@localhost ~]# uptime
15:33:08 up 10 days,  4:40,  2 users,  load average: 1.56, 1.22, 0.92

输出内容解释如下所示:

显示内容解释
15:33:08系统当前时间
up 10 days, 4:40主机已运行时间,时间越长,说明机器越稳定
2 users用户连接数,是总连接数而不是用户数
load average: 1.56, 1.22, 0.92系统平均负载,统计最近1、5、15分钟的系统平均负载

系统平均负载:指在某一段时间间隔内运行队列中的平均进程数。根据实际工程经验来看,单核负载在 0.7 以下是安全的,如超过则需要进行优化了。

除了使用uptime外,我们也可以使用以下方式来获取系统的平均负载情况。

[root@localhost ~]# cat /proc/loadavg
1.32 1.35 1.15 1/5585 28715
  • 前面3个数字分别表示最近1、5、15分钟的系统平均负载
  • 1/5585:分母表示系统的总进程数,分子表示正在运行的进程数
  • 28715:最近一个启动运行进程的ID

free

    free常用来查看系统的可用内存和已使用内存等信息。

基本用法
free [选项]

常用选项如下所示:

选项解释
-b以byte为单位显示内存使用情况
-k以KB为单位显示内存使用情况
-m以MB为单位显示内存使用情况
-g以GB为单位显示内存使用情况
-t额外显示内存总和
-h以较短的数字(默认为3位数)进行显示且增加单位,方便查看
-s time持续观察内存使用情况
-c count常与-s一直使用,用来设置采样样本数
-l详细显示高峰和低谷时的内存使用统计情况
采用-k/-m/-g/-h显示的值均采用向下取整的方式显示,如果需要精确查看,则建议使用-b
用法示例

1、显示主机内存使用情况

[root@localhost ~]# free -t -m
      total        used        free      shared  buff/cache   available
Mem:  128652       32106       87049     1293      9496       94266
Swap: 4095           0         4095
Total:132748       32106       91145

输出内解释如下所示:

total:可用物理内存总量
used:已经使用的内存数,包含buff/cache
free:可使用的内存数,不含buff/cache
share:多个进程共享的内存数
buff/cache:buff/cache占用量
Swap:交换分区使用量,虚拟内存
Total:物理内存总数

vmstat

    vmstat是一个Linux监控工具,全称为Virtual Memory Statistics。可用于查看关于进程、内存、I/O、等系统整体运行状态。

基本用法
vmstat [选项] [采样间隔] [采样样本数]

常用选项如下所示:

选项解释
-a显示活动/非活动的内存信息
-f显示自系统启动以来的系统创建的总任务数
-t增加时间戳
-m显示slabinfo信息
-n头部信息仅显示一次
-s以表格形式显示内存指标及系统事件信息等
-d显示各磁盘的统计信息
-p显示特定分区的详细统计信息
delay设置两次更新之间的时间间隔,如果不指定,则默认显示从开机到现在的平均值
count指定采样的样本数,如delay指定而count不指定则一直持续监控和输出
用法示例

1、常用用法

vmstat delay count
- delay:采样时间间隔
- count:采样的样本数

01vmstat详细解释.jpg

2、查看服务器创建了多少个任务数

[root@localhost ~]# vmstat -f
     51221915 forks

3、显示特定分区的统计信息:

[root@localhost ~]# vmstat -p /dev/sdb1
sdb1          reads   read sectors  writes    requested writes
               754      35990         81      22102
结果分析

    对于vmstat出来的统计结果,如何判定是否存在问题了?不同的服务器、操作系统、应用场景等均不一样,也无法给出统一的判断标准,需要大家根据实际情况进行综合判断。以下是一些实际应用中的经验,仅供参考:

  • 1、如果cache的值比较大,则说明系统缓存了比较多的磁盘数据,有利于磁盘I/O性能的提升,此时,bi会相对较小,因为很多读写磁盘的操作都由cache来承担了。
  • 2、si和so则代表读写SWAP的数量,这两个值如果长期大于0,则表示系统需要经常读写交换分区,这样会消耗CPU资源和磁盘I/O性能。如能确定物理内存存在瓶颈,则需要进行扩容或迁移了。
  • 3、如free的值很低,基于接近于0,也不一定就是系统内存已经耗尽,还需要结合buffer和cache的使用量,如果buffer和cache占用了很多内存资源,则代表没有问题,说明系统把空闲的内存都用于缓存,反而是提升了I/O性能,当系统需要内存时,buffer和cache可以随时被回收回来。
  • 4、如果bi和bo值很大,则说明系统正在进行大量的磁盘读写操作。如果是用户正在进行的操作,则没有问题,否则需要进行排查哪个设备或分区在进行大量读写操作。
  • 5、如果us的值经常大于50%,则说明用户进程占用的CPU时间比较多,需要对占用较多的程序进行排查和优化了。
  • 6、如果sy值比较高,需要排查系统是否存在问题。
  • 7、如果wa值比较高,则说明CPU总是在等待I/O操作,说明磁盘已经成为瓶颈,需要排查磁盘是否存在问题或优化程序的读写操作
  • 8、如果r值总是超过CPU核数,则说明CPU可能成为瓶颈,可考核升级CPU等

mpstat

    mpstat全称Multiprocessor statistics,也是一个监控工具,主要对象是CPU。

基本用法
mpstat [选项] [采样间隔] [采样样本数]

常用选项如下所示:

选项解释
-I显示中断统计信息
-P显示指定CPU编号的统计信息,0为第一个CPU
-u显示CPU的使用情况
-A等同于-u -I ALL -P ALL
与-I一起使用的参数如下所示
- SUM:显示所有CPU中断次数之和
- CPU:显示每个CPU中断次数
- ALL:将SUM和CPU的内容一起显示

与-P一起使用的参数如下所示
- ON:仅统计在线的CPU使用情况
- ALL:统计所有CPU的使用情况
CPU常用指标

    该指标一般是使用选项-u出来的统计结果,如下所示:

指标解释
CPUCPU编号
%usr用户进程所使用的CPU占比
%nice对进程进行降级时的CPU占比
%sys内核进行使用的CPU占比
%iowait空闲态中等待I/O请求所使用的CPU占比
%irq处理系统中断所使用的CPU占比
%soft软件中断所使用的CPU占比
%steal虚拟管理程序所使用的CPU占比
%guest运行虚拟处理器所使用的CPU占比
%gnice运行降级虚拟程序所使用的CPU占比
%idleCPU空闲态的CPU占比
用法示例

1、查看所有CPU运行状态
02mpstat示例1.jpg

2、查看指定CPU编号的运行状态
03mpstat示例2.jpg

3、查看CPU中断情况

    因为CPU的运算速度比外部硬件要快很多。以硬盘为例,如果是简单的顺序执行,则CPU需要等待很长
时间,不停询问硬盘是否读取完成,而这样会浪费很多CPU时间。为此人们提出一种中断机制,使得读取硬
盘这样的操作交给其他设备来完成,而CPU则挂起当前进程,将控制权转让给其他来处理的进程,当其他设
备处理完成后通知CPU,系统将当前进程标识为活动进行,从而继续执行,处理硬盘的读取操作。

04mpstat示例3.jpg

top

    top是Linux中一个常用的性能监控工具并能周期性地进行更新,我们因此也可以快速了解服务器的运行状态。

基本用法
top [选项]

常用的选项如下所示:

选项解释
-b以批处理模式进行操作
-c显示完整的命令信息
-d更新时间间隔
-n number指定循环显示的次数
-u number/name显示指定用户ID/用户名的进程
-p pid
-s安全模式
-S累积模式
交互模式

    交换械是指在top显示相关信息时,在不影响显示信息的同时进行的其他操作等,详细如下所示:

快捷键说明
f添加或删除进程信息项
k终止进程,需要输入PID号
r更改进程优先级
S切换到累积模式
s或d更改刷新时间
m切换显示内存信息
t切换显示进程和CPU状态信息
c切换显示命令名称和完整命令行
P根据CPU使用率大小进行排序
T根据时间/累计时间进行排序
W将当前设置保存到~/.toprc文件中
q退出top进程
b将当前进程进行高亮显示
l是否显示系统负载信息和启动时间
1(数字1)显示每个CPU核心单独的性能数据
用法示例

1、第一个示例:
05top示例1.jpg

示例详解

  • 系统级信息
    05top示例详细讲解-1.jpg

  • 进程指标信息

指标说明参考值
PID进程ID
PRID父进程ID
USER进程所属用户,启用进程的用户名
PRPriority缩写,进程优先级
NINice缩写,用于调节优先级,与PR有关,越小越早被执行-20~20 正数优先级降低,负数优先级提升
VIRT进程虚拟内存使用量
RES进程使用且未被交换出的物理内存使用量
SHR共享内存使用量
S进程状态R:运行 S:睡眠 D:不可中断的睡眠状态 T:跟踪、停止 僵尸
%CPUCPU使用率
%MEM内存使用率
TIME+进程的CPU使用时间累积和单位为1/100秒
TIME进程占用的CPU时间累积和单位为秒
RUSER进程的实际用户名,即登录到Shell所用用户名
UID进程所属用户的ID
GROUP进程所属的组名
TTY启动进程的终端名称
P进程最近一次所使用的CPU编号
SWAP进程使用且被交换出来的虚拟内存使用量
CODE进程对应的可执行代码所占用的物理内存量
DATA进程对应的数据部分(数据段、栈等)所占用的物理内存量
nFLT页面错误次数
nDRT最后一次写入到目前为止被修改过的页面数
WCHAN如果进程处理睡眠状态,则显示睡眠状态中系统调用名
Flags进程标志
COMMAND进程所对应的命令名

iostat

    iostat命令主要用来CPU的统计信息和每个设备、硬盘的IO统计信息

基本用法
iostat [选项] [采样间隔] [采样样本数]

常用的选项如下所示:

选项解释
-c仅显示CPU的统计信息,即单独输出CPU的平均统计信息
-d仅显示设备的统计信息
-h将各设备的统计信息以易于查看的方式进行显示
-k以kb/s显示统计信息
-m以mb/s显示统计信息
-t增加显示时间戳
-x显示额外信息
-y忽略自系统启动以来的第一行信息
用法示例

1、iostat示例
06iostat示例1.jpg

2、查看硬盘的IO信息
06iostat示例2.jpg

各指标详细解释如下所示:

指标说明
tps每秒进程的I/O读写请求总数
MB_read/s每秒读取的字节数,单位为MB/s
MB_wrtn/s每秒写入的字节数,单位为MB/s
MB_read读取的字节总数 ,单位为MB
MB_wrtn写入的字节总数 ,单位为MB
看到第一组第一行的数字非常大,是否就可以断定I/O存在问题了? 在iostat输出的第一组第一行数据,
表示是自Linux系统启动刚才本命令执行这段期间的统计结果,而后面的几组数据才真正表示了在iostat
采样周期的统计结果,而如果要排除第一组的数据可以使用选项 -y

3、显示额外的统计信息
06iostat示例3.jpg

各指标详细解释如下所示:

指标说明
rrqm/s每秒对该设备的读取请求总次数
wrqm/s每秒对该设备的写入请求总次数
r/s每秒完成读取的I/O次数
w/s每秒完成写入的I/O次数
rMB/s每秒实际读取的大小,单位为MB
wMB/s每秒实际写入的大小,单位为MB
avgrq-sz平均每次I/O操作的数据大小
avgqu-sz平均等待处理I/O操作的队列长度
await平均每次I/O请求等待时间(含等待时间和处理时间),一般应低于5ms
r_await每次读取I/O请求等待时间
w_await每次写入I/O请求等待时间
svctm平均每次I/O操作的服务时间
%util周期内用于I/O操作的时间比率,即I/O队列非空的时间比率,即(r/s+w/s )*(svctm/1000)

需要关注的参数如下所示:

  • %util:表示磁盘的忙碌情况,较大则代表I/O请求太多,硬盘可能存在瓶颈,一般不超过80%
  • await大于svctm:差值越小,则说明队列时间越短,反之差值越大,则队列时间越长,系统可能存在问题
  • svctm接近await,则说明I/O几乎没有等待时间
  • await远大于svctm,则说明I/O队列太长,则响应时间会变长

4、显示CPU统计信息
06iostat示例4.jpg

各指标详细解释如下所示:

指标说明
%user显示CPU在用户级(应用程序)执行时的时间占比
%nice显示CPU在用户级(应用程序)使用NICE权限执行时的时间占比
%system显示CPU在系统级(内核)执行时的时间占比
%iowait显示CPU在空闲状态期间未完成的磁盘I/O时间占比
%steal显示hypervisor服务另一个虚拟处理器时,虚拟CPU等待实际CPU的时间占比
%idle显示CPU在空闲状态期间系统未完成的磁盘I/O时间占比
  • 如果steal值比较高的话,需要扩容虚拟机,这是因为服务器上的另一个虚拟机可能拥有更大更多的CPU时间片而占用了你的虚拟机的CPU时间
  • 如果iowait值比较高,则可能硬盘存在I/O瓶颈
  • 如果idle值比较高,则表示CPU长期处于空闲状态
  • 如果idle值比较高但系统响应慢时,则有可能是CPU在等待内存分配,可考虑扩容内存容量
  • 如果idle值如果长期低于10%,则CPU处理能力是瓶颈

本文同步在微信订阅号上发布,如各位小伙伴们喜欢我的文章,也可以关注我的微信订阅号:woaitest,或扫描下面的二维码添加关注:
MyQRCode.jpg

转载于:https://www.cnblogs.com/surpassme/p/9471624.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
牙科就诊管理系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发。实现了用户在线查看数据。管理员管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等功能。牙科就诊管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 管理员在后台主要管理病例管理、字典管理、公告管理、药单管理、药品管理、药品收藏管理、药品评价管理、药品订单管理、牙医管理、牙医收藏管理、牙医评价管理、牙医挂号管理、用户管理、管理员管理等。 牙医列表页面,此页面提供给管理员的功能有:查看牙医、新增牙医、修改牙医、删除牙医等。公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。药品管理页面,此页面提供给管理员的功能有:新增药品,修改药品,删除药品。药品类型管理页面,此页面提供给管理员的功能有:新增药品类型,修改药品类型,删除药品类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值