linux——详解系统监控和常用命令(topfreedstat)(代码片段)

chaochao️ chaochao️     2022-12-26     385

关键词:

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

往期文章

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系统监控命令详解(代码片段)

1.top命令top命令经常用来监控Linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解。输入top命令1.1系统运行时间和平均负... 查看详情

linux系统常用命令详解

 Linux命令格式:命令选项参数(大部分命令是这个格式)注意:1.命令区分大小写2.短选项可以合并长选项不能合并如:短选项-l-h可以合并为-lh长选项不能合并1.ls:列出文件信息,默认为当前目录下常用选项:-a:列出所有的文... 查看详情

linux系统性能监控和调试(代码片段)

...于每个互联网研发人员来说,每天要监控和调试Linux系统性能问题都是非常困难的工作。为此,我们总结了非常有用的并且最常用的20个命令行系统监视工具。这些命令可以在所有版本的Linux下使用去监控和查找系统性能... 查看详情

linux监控工具讲解

本文主要记录一下Linux系统上一些常用的系统监控工具,非常好用。正所谓磨刀不误砍柴工,花点时间总结一下是值得的!本文内容脑图如下:top命令top命令我想大家都挺熟悉吧!Linux下的top命令有点类似于Windows下的任务管理器... 查看详情

linux常用监控系统命令(代码片段)

监控系统的状态使用w查看当前系统的负载,示例代码如下:[root@centos~]#w04:37:11up2:46,2users,loadaverage:0.00,0.01,0.03USERTTYFROMLOGIN@IDLEJCPUPCPUWHATroottty101:512:03m0.21s0.21s-bashrootpts/0192.168.60.2 查看详情

常用linux命令(分类详解!!)(代码片段)

Linux常用命令一、文件与目录操作1.1ls/ll命令1.2rm命令1.3cd命令1.4pwd命令1.5tree树形结构1.6mkdir命令1.7mv命令1.8cp命令1.9ln命令1.10touch命令1.11find命令1.12whereis命令二、关机三、系统(信息及日志位置)3.1系统信息3.2系统日志放... 查看详情

技术分享|9个常用linux命令详解

相信很多做机器人学习开发的相关的人员都会接触或使用Linux系统,Linux系统虽然也是电脑的操作系统,但和Windows系统相比还是有一定区别,Windows虽然大部分操作都是可视化图形界面便可以完成。但在Linux系统当中我... 查看详情

linux常用命令详解

一、命令的分类用于实现某一类功能的指令或程序命令本质就是程序命令的执行必须依赖于shell命令解释器程序(例如:/bin/bash)shell解释器,是Linux系统中运行的一种特殊程序,就是作为翻译官,横跨在用户和内核之间,将用户... 查看详情

linux常用命令|top详解(代码片段)

top命令实时显示进程的状态。(自己也会占用资源,类似window的任务管理器),由以下几部分组成默认状态显示的是cpu密集型的进程,并且每5秒钟更新一次。 (1)系统状态当前时间、系统已运行的时间、当前登录用户的数... 查看详情

❤️万字总结《linux系统常用命令》❤️——常用的linux操作指令详解及案例!(建议收藏)(代码片段)

现在的企业有90%甚至更过是使用Linux操作系统,所以不管是开发还是运维,不会点Linux知识肯定是无法进入到企业里工作.而且,全球500强超级计算机几乎都是使用Linux操作系统,这也是Linux操作系统实力的见证,接下来跟大家分享几个工... 查看详情

linux系统命令-ls详解

...行ls查看,也可以直接ls2、常用选项 二、ls常用选项详解分析1、用ls-l命令查看某一个目录会得到一个7个字段的列表 第1字段:文件属性字第一个字符代表文件的类型:"-”表示该文件是一个普通文件"d”表示该文件是一个目... 查看详情

linux系统性能监控常用命令

...cpu的个数->runqueue:表示cpu维护的线程运行队列。在多核系统中,每个cpu都将维护这么一个队列,其长度值越大表明cpu负载越高,load指标便基 查看详情

linux常用命令详解—基于centos7

本文档是根据网络资料整理的,参考文章众多,若有雷同,纯属巧合!Linux目录-/:根目录,一般只存放目录,不存放文件-/bin->/usr/bin:可执行二进制文件的目录,也是常用命令目录,如常用的命令ls、cat、mv等-/boot:该目录中... 查看详情

liunx常用命令详解

 查看磁盘命令dfdf-h查看所有(*通配符代表所有)文件大小du-sh* du-shk*|sort-rn(文件按大小排序) ps命令Linux下显示系统进程的命令ps,最常用的有ps-ef和psaux。这两个到底有什么区别呢?两者没太大差别,讨论这个问题,... 查看详情

linux常用性能诊断命令详解

参考技术Atop命令动态地监视进程活动与系统负载等信息。使用示例:效果如下图:以上命令输出视图中分为两个区域,一个统计信息区,一个进程信息区。统计信息区:第一行信息依次为:系统时间、运行时间、登录终端数、... 查看详情

linux操作系统级别监控top命令

Top命令是Linux下一个实时的、交互式的,对操作系统整体监控的命令,可以对CPU、内存、进程监控。是Linux下最常用的监控命令。第一行是任务队列信息1user当前登录用户数loadaverage:0.01,0.01,0.00 系统负载,即任务队列的平均长... 查看详情

linux性能监控常用命令

...的指标查看命令。pspstreetopfreevmstatsarpsps命令能给出当前系统中进程的快照。下面我们列举几个常用的选项使用-a参数。-a代表all。同时加上x参数会显示没有控制终端的进程。ps-ax通过我们会查找某类或包含某些指定关键字的进程&... 查看详情

linux常用命令详解—基于centos7

本文档是根据网络资料整理的,参考文章众多,若有雷同,纯属巧合!Linux目录-/:根目录,一般只存放目录,不存放文件-/bin->/usr/bin:可执行二进制文件的目录,也是常用命令目录,如常用的命令ls、cat、mv等-/boot:该目录中... 查看详情