热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux系统检测可能会使用到的命令汇总

1.uptime命令uptime命令能够打印系统总共运行了多长时间以及系统的平均负载。直接在命令行敲uptime会显示下面数据:16:19:08up114days,17:18,

1.uptime命令

  uptime命令能够打印系统总共运行了多长时间以及系统的平均负载。

直接在命令行敲uptime会显示下面数据:
16:19:08 up 114 days, 17:18, 2 users, load average: 0.00, 0.01, 0.05
#
16:19:08 是当前服务器的时间
#
114 days 是当前服务器运行的时间长度
#
2 users 当前的用户数量
#load average:
0.00, 0.01 是当前系统的负载,分别是1 5 15分钟的均值

2.top命令


2.1 top显示出来各个参数的含义

第一行的内容所代表的含义如下:
#
16:37:02 系统的时间
#
114 days 系统已运行多长时间
#
2 users 当前的用户
# load average:
0.02, 0.02, 0.05 系统负载
第二行的内容所代表的含义如下:
#Tasks:
79 total 总的任务进程数
#
1 running 运行的进程数
#
78 sleeping 休眠的进程数
#
0 stopped 停止的进程数
#
0 zombie 僵尸进程数
第三行的内容所代表的含义如下:
#
%Cpu(s) CPU状态信息
#
0.7 us (user space)用户空间占用CPU的百分比
#
0.7 sy (sysctl)内核空间占用CPU百分比
#
0.0 ni 改变过优先级的进程所占用CPU的百分比
#
98.7 id 空闲CPU百分比
#
0.0 wa IO等待占用CPU百分比
#
0.0 hi 硬中断占用CPU百分比
#
0.0 si 软中断占用CPU百分比
#
0.0 st
第四行的内容所代表的含义如下:
#KiB Mem 内存信息
#
1882048 total 物理内存的总大小
#
104160 free 空闲内存的大小
#
544756 used 使用的内存的大小
#
1233132 buff/cache 用做内核缓存的内存大小
第五行的内容所代表的含义如下:
#KiB Swap swap内存信息
#
0 total 交换分区的总大小
#
0 free 空闲的交换分区大小
#
0 used 使用的交换分区大小
#
1164664 avail Mem 代表可以使用于下一次分配的物理内存数量

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

2.2 top使用的一些参数项

top使用格式:
top
-[d] | [p] | [q] | [c] | [S] | [s] | [n]
参数的含义如下:
d: 指定没两次屏幕信息刷新之间的时间间隔。
p:通过指定某个监控项的进程ID来仅监控某个进程的状态。
q:该选项将使top没有任何延迟的进行刷新。
S:指定类继模式
s:使用top在安全模式下运行。
i:使用top不显示任何闲置或者僵尸进程
c:显示整个命令行而不是命令名。
PS:下面使直接使用top后会用到的命令:
f或者F:从当前显示中添加或者删除项目。
o或者O:改变显示项目的顺序
l:切换显示平均负载和启动时间信息。
m:切换显示内存信息。
t:切换显示进程和CPU状态信息。
c:切换显示命令名称和完整命令行。
M:根据驻留内存大小进行排序。
P:根据CPU使用百分比大小进行排序。
T:根据时间
/累计时间进行排序。
W:将当前设置写入
~/.toprc文件中。

2.3 top视图

  直接使用top进入基本视图,在基本视图中按1可以监控每个逻辑CPU的概况。

    敲击键盘“b”(打开/关闭加亮效果)这时使视图2,具体效果如下:  

     这里会把运行的进程进行加亮,也可以敲击y来打开或者关闭运行状态进程的加亮效果。

  敲击键盘‘x’(打开/关闭排序列的加亮效果),top视图变换如下:

     可以看到现在是按"%CPU"进行排序的,可以按”shift+>”或者”shift+<”左右改变排序序列.

  在top基本视图中,敲击”f”进入另一个视图,在这里可以编辑基本视图中的显示字段:

   用上下键选择选项,按下空格键可以决定是否在基本视图中显示这个选项。


 3.iostat命令

  iostat是IO statistics(输入/输出统计)的缩写,iostat工具会对系统的磁盘活动进行监控。它的特点是汇报磁盘活动的统计情况,同时也会汇报出CPU使用的情况。但是iostat不能对单个进程做深入的分析,仅能够对系统的整体情况进行分析。

iostat的安装:
yum install sysstat

  如果直接在命令行敲击iostat的话可以看到所有设备的信息,如下图所示:

上面的图中所显示的一些信息的具体含义如下:
第一行显示的是系统的一些基本信息
下面这行是CPU的属性值相关的说明:
%user:CPU处在用户模式下的时间百分比。
%nice:CPU处在带NICE值的用户模式下的时间百分比。
%system:CPU处在系统模式下的时间百分比。
%iowait:CPU等待输入输出完成时间的百分比。
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
%idle:CPU空闲时间百分比。
PS:注意
1.如果%iowait的值比较高,可能表示硬盘存在IO瓶颈
2.如果%idle的值比较高,表示CPU目前比较空闲
3.如果%idle的值很高,但是系统的响应比较慢,可能是CPU在等待分配内存,这时可以考虑加大内存的容量
4.如果%idle的值持续低于10,那么可能是CPU的处理能力相对比较低下,系统中最需要解决的资源是CPU
在下面那行是磁盘相关的属性信息:
tps:该设备每秒的传输次数
kB_read
/s:每秒从设备(drive expressed)读取的数据量;
kB_wrtn
/s:每秒向设备(drive expressed)写入的数据量;
kB_read:读取的总数据量;
kB_wrtn:写入的总数量数据量;

用法:iostat [选项] [<时间间隔>] [<次数>]
参数:
-c: 显示CPU使用情况
-d: 显示磁盘使用情况
-N: 显示磁盘阵列(LVM) 信息
-n: 显示NFS 使用情况
-k: 以 KB 为单位显示
-m: 以 M 为单位显示
-t: 报告每秒向终端读取和写入的字符数和CPU的信息
-V: 显示版本信息
-x: 显示详细信息
-p:[磁盘] 显示磁盘和分区的情况
下面是可能会用到的一些简单的命令:
#定时显示所有的信息,每隔2秒刷新显示3次
iostat
2 3
#指定磁盘的信息
iostat
-d /dev/vda
#显示tty和cpu的信息
iostat
-t
#以M为单位显示所有的信息
iostat
-m
#查看TPS和吞吐量信息
iostat
-d -k 1 1
#查看设备使用率(
%util)、响应时间(await)
iostat
-d -x -k 1 1

  下面是查看设备使用率响应时间的图:

rrqm/s: 每秒进行 merge 的读操作数目。即 rmerge/s
wrqm
/s: 每秒进行 merge 的写操作数目。即 wmerge/s
r
/s: 每秒完成的读 I/O 设备次数。即 rio/s
w/s: 每秒完成的写 I/O 设备次数。即 wio/s
rkB
/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。
wkB
/s: 每秒写K字节数。是 wsect/s 的一半。
avgrq
-sz: 平均每次设备I/O操作的数据大小 (扇区)。
avgqu
-sz: 平均I/O队列长度。
rsec
/s: 每秒读扇区数。即 rsect/s
wsec
/s: 每秒写扇区数。即 wsect/s
r_await:每个读操作平均所需的时间,不仅包括硬盘设备读操作的时间,还包括了在kernel队列中等待的时间。
w_await:每个写操作平均所需的时间,不仅包括硬盘设备写操作的时间,还包括了在kernel队列中等待的时间。
await: 平均每次设备I
/O操作的等待时间 (毫秒)。
svctm: 平均每次设备I
/O操作的服务时间 (毫秒)。
%util: 一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比。
如果%util接近100%,说明产生的IO青丘数量太多了,IO系统已经负载了,该磁盘可能存在瓶颈。
如果svctm比较接近await,说明IO几乎没有等待时间。
如果await远大于svctm,说明IO队列太长了,IO响应太慢,需要进行必要的优化。
如果avgqu-sz比较大,也说明有一定量的IO在等待。

 4.vmstat命令

  vmstat可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存的使用,虚拟内存交换的情况,IO读写情况。总结来说就是用来获取有关进程、虚存、页面交换空间以及CPU活动信息,我们可以使用这些信息来观察系统负载的情况。

#vmstat的用法
vmstat [
-a] [-n] [-S unit] [delay [ count]]
vmstat [
-s] [-n] [-S unit]
vmstat [
-m] [-n] [delay [ count]]
vmstat [
-d] [-n] [delay [ count]]
vmstat [
-p disk partition] [-n] [delay [ count]]
vmstat [
-f]
vmstat [
-V]
-a:显示活跃和非活跃内存
-f:显示从系统启动至今的fork数量
-m:显示slabinfo
-n:只在开始时显示一次各字段的名称
-s:显示内存相关统计信息及多种系统活动数量。
delay:刷新时间间隔。如果不指定,只显示一条结果。
count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。
-d:显示磁盘相关统计信息。
-p:显示指定磁盘分区统计信息
-S:使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、10241000000、1048576字节(byte)。默认单位为K(1024 bytes)
-V:显示vmstat版本信息。

  如果直接在命令行敲击vmstat会出现如下图所示的数据:

#procs下面的参数含义如下:
r 列表示运行和等待cpu时间片的进程数,如果长期大于1,说明cpu不足,需要增加cpu。
b 列表示在等待资源的进程数,比如正在等待I
/O、或者内存交换等。
#memory下面的参数含义如下:
swpd 切换到内存交换区的内存数量(k表示)。如果swpd的值不为0,或者比较大,比如超过了100m,只要si、so的值长期为0,系统性能还是正常
free 当前的空闲页面列表中内存数量(k表示)
buff 作为buffer cache的内存数量,一般对块设备的读写才需要缓冲。
cache 作为page cache的内存数量,一般作为文件系统的cache,如果cache较大,说明用到cache的文件较多,如果此时IO中bi比较小,说明文件系统效率比较好。
#swap下面的参数含义如下:
si 由内存进入内存交换区数量。
so 由内存交换区进入内存数量。
#io下面的参数含义如下:
bi 从块设备读入数据的总量(读磁盘)(每秒kb)。
bo 块设备写入数据的总量(写磁盘)(每秒kb)。
PS:这里我们设置的bi
+bo参考值为1000,如果超过1000,而且wa值较大应该考虑均衡磁盘负载,可以结合iostat输出来分析。
#system下面的参数含义如下:
显示采集间隔内发生的中断数
in 列表示在某一时间间隔中观测到的每秒设备中断数。
cs 列表示每秒产生的上下文切换次数,如当 cs 比磁盘 I
/O 和网络信息包速率高得多,都应进行进一步调查。
#cpu下面的参数含义如下:
us 列显示了用户方式下所花费 CPU 时间的百分比。us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期大于50
%,需要考虑优化用户的程序。
sy 列显示了内核进程所花费的cpu时间的百分比。这里us
+ sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。
wa 列显示了IO等待所占用的CPU时间的百分比。这里wa的参考值为30
%,如果wa超过30%,说明IO等待严重,这可能是磁盘大量随机访问造成的,也可能磁盘或者磁盘访问控制器的带宽瓶颈造成的(主要是块操作)。
id 列显示了cpu处在空闲状态的时间百分比

 5.iotop命令

  iotop命令可以用来监控磁盘IO的状况。与top的UI类似。

-o:只显示有io操作的进程
-b:批量显示,无交互,主要用作记录到文件。
-n NUM:显示NUM次,主要用于非交互式模式。
-d SEC:间隔SEC秒显示一次。
-p PID:监控的进程pid。
-u USER:监控的进程用户。

Total DISK READ/Total DISK WRITE
一方面表示了进程和内核线程之间的总的读写带宽,另一方面也表示内核块设备子系统的。
Actual DISK READ/Actual DISK WRITE
表示在内核块设备子系统和下面硬件(HDD、SSD 等等)对应的实际磁盘 I
/O 带宽。

TID 线程号或进程号
PRIO 线程运行时的I/O优先级
USER 进程所属用户
DISK READ 刷新时间间隔内读取数据量
DISK WRITE 刷新时间间隔内写入数据量
SWAPIN 每个进程的交换使用率
IO 每个进程的 I/O 利用率,包含磁盘和交换
COMMAND 进程名字

 



推荐阅读
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 本文介绍了2020年计算机二级MSOffice的选择习题及答案,详细解析了操作系统的五大功能模块,包括处理器管理、作业管理、存储器管理、设备管理和文件管理。同时,还解答了算法的有穷性的含义。 ... [详细]
author-avatar
gjfeh46999
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有