Linux——详解系统监控和常用命令(top free dstat)
Posted chaochao️
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux——详解系统监控和常用命令(top free dstat)相关的知识,希望对你有一定的参考价值。
创作不易,来了的客官点点关注,收藏,订阅一键三连❤😜
往期文章
Linux——超超讲解SSH的原理与SSH的实现!建议收藏❤
目录
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
相关解释:
关于进程与程序的详解,点击以下链接:
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)的主要内容,如果未能解决你的问题,请参考以下文章