0

Linux 综合性命令及解析

 2 years ago
source link: https://os.51cto.com/article/714044.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
9423ca281c38acd7013652e209bdb628af9ea7.jpg

一、top – 实时显示系统运行状态

  • top 命令的功能是用于实时显示系统运行状态,包含处理器、内存、服务、进程等重要资源信息。运维工程师们常常会把 top 命令比作是 “加强版的 Windows 任务管理器”,因为除了能看到常规的服务进程信息以外,还能够对处理器和内存的负载情况一目了然,实时感知系统全局的运行状态,非常适合作为接手服务器后执行的第一条命令。
  • 动态查看进程信息,并且可以查看到系统负载,内存,CPU 等使用情况。
top [参数]

参数

解析

-d <秒>

改变显示的更新速度

切换显示模式,更详细的显示路径及命令

安全模式,不允许交互式指令

不显示任何闲置或僵死的行程

设定显示的总次数,完成后将会自动退出

批处理模式,不进行交互式显示

以默认格式显示系统运行信息:

[root@root ~]# top
top - 02:48:56 up 20 min,  1 user,  load average: 0.00, 0.00, 0.04
Tasks: 432 total,   1 running, 431 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 s
MiB Mem :   1966.1 total,    172.1 free,   1339.3 used,    454.7 buff/cache
MiB Swap:   2048.0 total,   2033.5 free,     14.5 used.    443.4 avail Mem  
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                
  2848 root      20   0  177712  28820   7700 S   6.2   1.4   0:01.31 sssd_kcm                    
    1 root      20   0  244748  14180   9052 S   0.0   0.7   0:01.10 systemd                    
    2 root      20   0       0      0      0 S   0.0   0.0   0:00.01 kthreadd  
………………省略部分输出信息………………

以默认格式显示系统运行信息,但提供完整的进程路径及名称:

[root@root ~]# top -c

以批处理模式显示程序信息:

[root@root ~]# top -b

设定每隔 5 秒刷新一次信息:

[root@root ~]# top -c -d 5

设定总显示次数为 3 回,随后自动退出命令:

[root@root ~]# top -n 5
  • load average: 0.00, 0.01, 0.05
  • 系统 1 分钟,5 分钟,15 分钟平均负载
  • %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
  • us 用户态 CPU
  • sy 内核态 CPU
  • ni 优先级
  • id 空闲的 CPU
  • wa 等待输入输出设备的 CPU
  • hi 硬中断
  • si 软中断
  • st 虚拟化占用 CPU 资源
  • KiB Mem : 995896 total, 487280 free, 121580 used, 387036 buff/cache
  • total 总内存空间
  • free 空闲内存
  • used 已使用内存
  • buff 写缓冲 解决空间问题
  • cache 读缓存 解决速率问题
top
&&  
top -c

二、htop – 互动的进程查看器

  • htop 是 linux 系统中的一个互动的进程查看器,一个文本模式的应用程序 (在控制台或者 X 终端中),需要 ncurses。htop 比较人性化。它可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。
  • htop 相比较 top 的优势有可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完整的命令行、在启动上比 top 更快、杀进程时不需要输入进程号、支持鼠标选中操作、top 已不再维护。
  • htop 相当于 top 的升级版,监控界面是彩色的。
htop [参数]
  • 非交互式是直接输入命令的时候加上参数,而交互式是 htop 进入监测后使用的。

非交互式参数

参数

解析

使用单色配色方案

设置更新的延迟, 单位是 10 微秒

只显示一个指定用户的进程

只显示给用户

打印此命令帮助

打印版本信息

交互式参数

参数

解析

space

标记一个进程

取消所有标记

显示进程打来的文件

显示特定用户

按照内存排序

按照 CPU 排序

按在线时长排序

直接输入数字

查找对应的 PID 进程

启动 htop:

[root@root ~]# htop

以单色模式启动 htop:

[root@root ~]# htop -C

设置显示更新的延迟为 3 秒:

[root@root ~]# htop -d 3

显示一个给定的用户的进程:

[root@root ~]# htop -u linuxcool_user
82e91807739f40f80a743343c5b0fa24fa8040.jpg

三、vmstat – 显示虚拟内存状态

  • vmstat 命令的含义为显示虚拟内存状态(“Virtual Memory Statistics”),但是它可以报告关于进程、内存、I/O 等系统整体运行状态。
vmstat [参数]
&&
vmstat [参数] [时间间隔] [执行次数]

参数

解析

显示活动内页

显示启动后创建的进程总数

显示 slab 信息

头信息仅显示一次

以表格方式显示事件计数器和内存状态

报告磁盘状态

显示指定的硬盘分区状态

输出信息的单位

显示活动内页:

[root@root ~]# vmstat -a

显示启动后创建的进程总数:

[root@root ~]# vmstat -f

显示 slab 信息:

[root@root ~]# vmstat -m

头信息仅显示一次:

[root@root ~]# vmstat -n

以表格方式显示事件计数器和内存状态:

[root@root  ~]# vmstat -s

显示指定的硬盘分区状态:

[root@root ~]# vmstat -p /dev/sda1

指定状态信息刷新的时间间隔为 1 秒:

[root@root ~]# vmstat 1

指定状态信息刷新的时间间隔为 2 秒刷新 3 次:

[root@root ~]# vmstat 2 3
[root@root ~]# vmstat  
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
2  0  35896 445256    520 487496  271 2091   622  2119  129  127  1  1 97  0  0

1.procs

  • r 表示等待执行的任务数,当一段时间内这个数值一直超过 CPU 数说明当前系统出现 CPU 瓶颈;
  • b 表示等待 IO 的进程数量。

2.memory

  • swpd 虚拟内存已使用的大小,如果大于 0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器;
  • free 空闲的物理内存的大小;
  • buff Linux/Unix 系统是用来存储,目录里面有什么内容,权限等的缓存;
  • cache 直接用来记忆我们打开的文件, 给文件做缓冲。

3.swap

  • si 每秒从磁盘读入虚拟内存的大小,如果这个值大于 0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉;
  • so 每秒虚拟内存写入磁盘的大小,如果这个值大于 0,同上。
  • bi 块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是 1024byte;
  • bo 块设备每秒发送的块数量,例如我们读取文件,bo 就要大于 0。bi 和 bo 一般都要接近 0,不然就是 IO 过于频繁,需要调整。

5.system

  • in 每秒中断数,包括时钟中断;
  • cs 表示每秒上下文切换;
  • 这两个值越大,会看到由内核消耗的 cpu 时间会越多。

6.cpu

  • us 用户 CPU 时间;
  • sy 系统 CPU 时间,如果太高,表示系统调用时间长,例如是 IO 操作频繁;
  • id 空闲 CPU 时间,一般来说,id + us + sy = 100, 一般我认为 id 是空闲 CPU 使用率,us 是用户 CPU 使用率,sy 是系统 CPU 使用率;
  • wa 等待 IO CPU 时间;
  • st 等待 IO CPU 时间。

四、dstat – 全能系统信息统计工具

  • dstat 命令是一个用来替换 vmstat、iostat、netstat、nfsstat 和 ifstat 这些命令的工具,是一个全能系统信息统计工具。与 sysstat 相比,dstat 拥有一个彩色的界面,在手动观察性能状况时,数据比较显眼容易观察;而且 dstat 支持即时刷新,譬如输入 dstat 3 即每三秒收集一次,但最新的数据都会每秒刷新显示。和 sysstat 相同的是,dstat 也可以收集指定的性能资源,譬如 dstat -c 即显示 CPU 的使用情况。
dstat [参数]

参数

解析

显示 CPU 系统占用,用户占用,空闲,等待,中断,软件中断等信息

显示磁盘读写数据大小

显示网络状态

显示系统负载情况

显示内存使用情况

显示页面使用情况

显示进程状态

显示交换分区使用情况

I/O 请求情况

显示 ipc 消息队列,信号等信息

–socket

用来显示 tcp udp 端口状态

分别显示 cpu、disk、net、page、system 信息:

[root@root ~]# dstat

每三秒收集一次 cpu、disk、net、page、system 信息 :

[root@root ~]# dstat 3

显示 CPU 系统占用,用户占用,空闲,等待,中断,软件中断等信息 :

[root@root ~]# dstat -c

显示磁盘读写数据大小 :

[root@root ~]# dstat -d

显示网络状态:

[root@root ~]# dstat -n

五、glances – 高层次的多子系统概览

  • Glances 是一个相对比较新的系统监控工具,用 Python 编写的,使用 psutil 库从系统获取信息。可以用它来监控 CPU、平均负载、内存、网络接口、磁盘 I/O,文件系统空间利用率、挂载的设备、所有活动进程以及消耗资源最多的进程。Glances 有很多有趣的选项。它的主要特性之一是可以在配置文件中设置阀值(careful 小心、warning 警告、critical 致命),然后它会用不同颜色显示信息以表明系统的瓶颈。

glances [参数]

参数

解析

显示网络连接速度 Byte/ 秒

设置 glances 运行模式为服务器

绑定服务器端 IP 地址或者主机名称

连接 glances 服务器端

设置屏幕刷新的时间间隔,单位为秒,默认值为 2 秒,数值许可范围:1~32767

192.168.10.2 主机启动 glances 服务:

[root@root ~]# glances -s -B 192.168.10.2 &

从另一台主机查看 192.168.10.2 主机的系统负载状态:

[root@root ~]# glances -c 192.168.10.2

显示网络连接速度 Byte/ 秒:

[root@root ~]# glances -b

设置屏幕刷新的时间间隔为 6 秒:

[root@root ~]# glances -t 6

六、sar – 系统运行状态统计

  • sar 命令是 Linux 下系统运行状态统计工具,它将指定的操作系统状态计、数器显示到标准输出设备。
  • sar(System Activity Reporter 系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘 I/O、CPU 效率、内存使用状况、进程活动及 IPC 有关的活动等

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

参数

解析

所有报告的总和

显示内存状态

显示 I/O 和传递速率的统计信息

显示换页状态

输出每一块磁盘的使用信息

设置显示报告的结束时间

从制定的文件读取报告

设置状态信息刷新的间隔时间

报告每个 CPU 的状态

输出 cpu 使用情况和统计信息

显示索引节点、文件和其他内核表的状态

显示交换分区的状态

显示给定进程的装

报告内存利用率的统计信息

使用 - R 参数显示内存信息:

[root@root ~]# sar -R

使用 - b 参数显示 I/O 速率:

[root@root ~]# sar -b

使用 - u 参数显示 CPU 利用率:

[root@root ~]# sar -u

使用 - d 参数查看每块磁盘的使用信息

[root@root ~]# sar -d

使用 - i 参数和 - f 参数设置状态信息 1 秒刷新一次并记录 5 次

[root@root ~]# sar -i 1 -f 5

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK