Linux——详解系统监控和常用命令(top free dstat)

Posted chaochao️

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux——详解系统监控和常用命令(top free dstat)相关的知识,希望对你有一定的参考价值。

创作不易,来了的客官点点关注,收藏,订阅一键三连❤😜 

往期文章

Linux——超超讲解SSH的原理与SSH的实现!建议收藏❤

Linux——万字总结用户与组的权限那些事儿!建议收藏!

Linux——万字总结用户与组相关知识!建议收藏!

目录

Linux监控概叙

Linux监控工具

监控的意义

Linux系统性能主要看什么?

cpu

调度算法

​ 查看哪些进程在CPU里运行

内存

内存是什么?

内存的作用

虚拟内存的优化

buff/cache

常用的系统监控命令

top

Free命令

sync命令

sync用于强制被改变的内容立刻写入磁盘,更新超块信息。

W

dstat


Linux监控概叙

Linux服务器要保证系统的高可用性,需要实时了解到服务器的硬件、操作系统、应用服务等的运行状况,各项性能指标是否正常,需要使用各种Linux命令。做到自动化运维就需要,将上述各项监控指标在同一个软件中展显出来,图形化监控,消息报警机制,日志检看,资产管理等。

Linux监控工具

监控工具zabbix、Prometheus

常用命令如下:

企业级Linux发行版附带了许多监控工具。

一些工具可处理度量标准,提供更好的格式化输出,便于我们理解系统活动。

一些工具是针对特定的性能度量标准(比如磁盘I/O)的,并可以给出更详细的信息。

熟悉这些系统工具我们就可以知道系统发生了什么,帮助我们找到问题可能出现的原因。


监控的意义

1.提前预知、预警,防范事故于未然,提前采取措施

2.如果出现事故,可以马上告诉运维工人来及时处理,将损失降到最少


Linux系统性能主要看什么?

cpu、gpu、memory(内存)、disk(磁盘)、网络、进程、服务等

cpu

单位:

物理上:颗

查看核心:

lscpu

 cat /proc/cpuinfo

调度算法

FCFS(first come,first serve):先来先服务

SJF:短作业优先

RR算法

多级反馈

 查看哪些进程在CPU里运行

方法一:

[root@fengdeyong ~]# cat top.txt |awk /Cpu/{print $2,$4,$8}

0.0 3.1 96.9

方法二:

[root@fengdeyong ~]# ps -eo pid,ppid,%cpu,%mem,psr,command

内存

内存是什么?

  • 内存又称主存,是 CPU 能直接寻址的存储空间,由半导体器件制成
  • 内存的特点是存取速率快
  • Linux里的虚拟内存=真实内存+swap分区
  • swap分区:交换分区,从磁盘空间中划分出一块空间来使用,性能比真正的物理内存差。

内存的作用

  • 暂时存放 cpu 的运算数据
  • 硬盘等外部存储器交换的数据
  • 保障 cpu 计算的稳定性和高性能

虚拟内存的优化

方法一:

[root@sanchuang-cs ~]# echo 0 >>/proc/sys/vm/swappiness

[root@sanchuang-cs ~]# cat /proc/sys/vm/swappiness

0

[root@sanchuang-cs ~]#

方法二:

cat /etc/sysctl.conf

先使用物理内存,再使用交换分区swap分区

buff/cache

定义

在Linux的内存管理中,这里的buffer指Linux内存的:Buffer cache。这里的cache指Linux内存中的:Page cache。翻译成中文可以叫做缓冲区缓存和页面缓存。在历史上,它们一个(buffer)被用来当成对io设备写的缓存,而另一个(cache)被用来当作对io设备的读缓存,这里的io设备,主要指的是块设备文件和文件系统上的普通文件。

但是现在,它们的意义已经不一样了。在当前的内核中,page cache顾名思义就是针对内存页的缓存,就是如果有内存是以page进行分配管理的,都可以使用page cache作为其缓存来管理使用。当然,不是所有的内存都是以页(page)进行管理的,也有很多是针对块(block)进行管理的,这部分内存使用如果要用到cache功能,则都集中到buffer cache中来使用。(从这个角度出发,是不是buffer cache改名叫做block cache更好?)然而,也不是所有块(block)都有固定长度,系统上块的长度主要是根据所使用的块设备决定的,而页长度在X86上无论是32位还是64位都是4k。

回收

echo 1 > /proc/sys/vm/drop_caches:表示清除pagecache。

echo 2 > /proc/sys/vm/drop_caches:表示清除回收slab分配器中的对象(包括目录项缓存和inode缓存)。slab分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的pagecache。

 echo 3 > /proc/sys/vm/drop_caches:表示清除pagecache和slab分配器中的缓存对象。


常用的系统监控命令

top

 The  top  program  provides a dynamic real-time view of a running system.  It can display system summary information as well as a list of processes or threads currently being man aged  by  the Linux kernel.

htop(有颜色的):Ubuntu上直接可以使用,centos需要下载,如果不能直接下载先yum install epel-release -y,然后yum install htop -y

相关解释: 

关于进程与程序的详解,点击以下链接:

Linux——这一篇搞定进程和程序! 


Free命令

free - 显示系统已用及空余物理内存量、交换分区使用情况(swap memory)、内核占用的缓存、及共享内存。其命令形式为 free + options(可多个参数)。

free命令显示了当前系统内存使用情况,其数据取自/proc/meminfo文件,free的默认值是KB。

-b, –bytes, 以Byte为单位显示内存使用情况

-k, –kilo, 以KB为单位, 这也是默认值

-m, –mega, 以MB为单位显示内容使用情况

-g, –giga, 以GB为单位显示内存使用情况

 -h, –human, 自动将数值转换为人类易读形式

[root@kafka02 ~]# free -b

              total        used        free      shared  buff/cache   available

Mem:      818823168   280391680   132571136    10993664   405860352   393261056

Swap:    2147479552           0  2147479552

[root@kafka02 ~]# free -h

              total        used        free      shared  buff/cache   available

Mem:          780Mi       267Mi       126Mi        10Mi       387Mi       374Mi

Swap:         2.0Gi          0B       2.0Gi

[root@kafka02 ~]# free -m

              total        used        free      shared  buff/cache   available

Mem:            780         267         126          10         387         374

Swap:          2047           0        2047
total 内存总数 : 780M
used 已经使用的内存数 : 267M
free 空闲的内存数 : 126M
shared 多个进程共享的内存总额 10M
buff/cache : 缓存的大小,是作为服务器系统的文件数据缓存使用的
available : 可用内存 free + buff/cache
total=used(267)+free(126)+ buff/cache (387)8
swap: 当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。这些被释放的进程被临时保存到 Swap 空间中,等到那些程序要运行时,再从 Swap 分区中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行 Swap 交换。所以 swap 分区不被占用或者占用很少,说明现在系统内存够用,运行还算良好,不会影响系统运行。

sync命令

sync用于强制被改变的内容立刻写入磁盘,更新超块信息。

在Linux/Unix系统中,在文件或数据处理过程中一般先放到内存缓冲区中,等到适当的时候再写入磁盘,以提高系统的运行效率。sync命令则可用来强制将内存缓冲区中的数据立即写入磁盘中。用户通常不需执行sync命令,系统会自动执行update或bdflush操作,将缓冲区的数据写 入磁盘。只有在update或bdflush无法执行或用户需要非正常关机时,才需手动执行sync命令。


W

[root@kafka02 ~]# w

 11:34:28 up 31 min,  2 users,  load average: 0.01, 0.11, 0.17

USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT

root     tty1     -                11:03   29:51   0.01s  0.01s -bash

root     pts/0    192.168.2.3      11:05    0.00s  0.02s  0.01s w

平均负载(load average:指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,即平均活跃进程数,它和cpu使用率没有直接关系。

load average: 0.01, 0.11, 0.17 -->负载增加,超过1就是用完了

时间片:1秒划分很多的片段,1s=1000ms。

中断(interruptabletop:分为软中断和硬中断,运行的时候被打断。


dstat

dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品。dstat克服了这些命令的局限并增加了一些另外的功能,增加了监控项,也变得更灵活了。dstat可以很方便监控系统运行状况并用于基准测试和排除故障。dstat可以实时地查看所有系统资源。

安装:yum install dstat -y

查看进程:dstat -a

退出:CTRL +C

对以上输出结果的解释:

语法dstat [-afv] [options..] [delay [count]]

常用选项

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

-C:当有多个CPU时候,此参数可按需分别显示cpu状态,例:-C 0,1 是显示cpu0和cpu1的信息。

-d:显示磁盘读写数据大小。

-D hda,total:include hda and total。

-n:显示网络状态。

-N eth1,total:有多块网卡时,指定要显示的网卡。

-l:显示系统负载情况。

-m:显示内存使用情况。

-g:显示页面使用情况。

-p:显示进程状态。

-s:显示交换分区使用情况。

-S:类似D/N。

-r:I/O请求情况。

-y:系统状态。

--ipc:显示ipc消息队列,信号等信息。

--socket:用来显示tcp udp端口状态。

-a:此为默认选项,等同于-cdngy。

-v:等同于 -pmgdsc -D total。

--output 文件:此选项也比较有用,可以把状态信息以csv的格式重定向到指定的文件中,以便日后查看。例:dstat --output /root/dstat.csv & 此时让程序默默的在后台运行并把结果输出到/root/dstat.csv文件中。

常用插件 

创作不易,客官点个赞吧!评论一下!一起加油❤😜   

以上是关于Linux——详解系统监控和常用命令(top free dstat)的主要内容,如果未能解决你的问题,请参考以下文章

linux top命令详解

Linux系统监控命令详解

Linux中top命令输出指标详解

Linux中top命令参数详解

性能监控命令top详解杭州多测师杭州多测师_王sir

Linux入门之常用命令(11) 系统监控 vmstat top