Linux操作系统监控

  • top命令
  • free命令- 内存监控
  • df命令 - 磁盘空间监控
  • iostat命令- 磁盘IO监控
  • vmstat命令-综合监控工具
  • netstat命令-网络监控
  • dstat- 超级监控工具

top命令

TOP命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况;可以对CPU、内存、进程监控。是Linux下最常见的监控命令。

top命令数据分析详解:

  • user:代表当前有3个登录用户数
  • load average:我们从上图中可以看到,load average 中分别有三个值,这三个值分别表示在过去某个时间内的的负载情况,因为我这里的系统还没有程序运行,所以显示的时间都是0.(这里需要注意下,load average最好不要大于Cpu的核数,否则系统都超负载了)
  • Task:242 total 代表系统的进程总数
1、running 在运行中的进程数
2、sleeping 在休眠中的进程数
3、stopped 停止状态下的进程数
4、zombie 僵尸状态下的进程数
  • %Cpu(s): 0.3% us 用户空间占用 CPU 百分比
1、us:用户空间占用CPU的百分比
2、sy:内核空间占用CPU的百分比,如果us(用户)高于sy(系统)会比较好,毕竟我们的操作系统主要还是给用户使用的。
2、ni:用户在改变过优先级的进程占用CPU的百分比
3、id:空闲的CPU百分比
4、waIO等待占用CPU的百分比IOwait,如果这个较高的话,意味这个网络IO或者磁盘IO存在一定的问题,需要排查)
5、 hi:硬中断占用CPU的百分比
6、 si:软中断占用CPU的百分比

cpu统计的是整个cup的平均数据,因为cpu有很多核,我们想要看每个核的cpu数据,可以按数字1,查看具体的cpu数据,这里也可以看到我当前的Liunx系统是1核的,所以有1条数据

free命令- 内存监控

free 命令用来查看当前系统内容的使用情况,包含内存总量,已使用的内存和可使用的内存

  • free命令主要看Mem和Swap统计情况:
    1.Mem:统计了系统操作系统中内存的total、used、free、buffers、cached、available
    2.Swap:统计了交换分区中内存的total、used、free、buffers、cached、available,当前系统内存不足时,会使用交换空间
    buffer 和 cache
    两者都是linux操作系统下的缓存机制,其中buffer为写操作的缓存,cache为读操作的缓存
    内存的判断标准为使用内存不能大于90%

df命令 - 磁盘空间监控

df命令检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息

df参数详解:

1.-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
2.-k :以 KBytes 的容量显示各文件系统;
3.-m :以 MBytes 的容量显示各文件系统;
4.-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
5.-H :以 M=1000K 取代 M=1024K 的进位方式;
6.-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
7.-i :不用硬盘容量,而以 inode 的数量来显示

iostat命令- 磁盘IO监控

在输入iostat命令时,遇到个小问题,提示 下载元数据失败 于是在网上查看一下资料,出现的原因是Centos8于2021年年底停止了服务,安装时故会报这个错误

解决方案

1进入yum的repos目录cd /etc/yum.repos.d/2、修改所有的CentOS文件内容sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
3、更新yum源为阿里镜像wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repoyum clean allyum makecache

按照上述命令操作,然后输入 iostat 一路输入"y"执行就安装成功了

iostat参数选项:

  • -x:展示磁盘的扩展信息
  • -k:以k为单位展示磁盘数据
  • 1:没1秒刷新一次数据
    展示结果
  • unti:磁盘IO的使用率,反应磁盘的繁忙程度,上限100%
  • r/s:每秒读请求数
  • w/s:每秒写请求数
  • rkb:每秒写磁盘的字节数
  • wkb:每秒读磁盘的字节数
    磁盘我们主要关注磁盘的读写率,判断磁盘性能是否有问题

vmstat命令-综合监控工具

vmstat 命令是最常见的 Linux/Unix 监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的 CPU 使用率,内存使用,虚拟内存 交换情况,IO 读写情况。
这个命令是我查看 Linux/Unix 最喜爱的命令,一个是 Linux/Unix 都支持,二是相比 top,我可以看到整个机器的 CPU,内存,IO 的使用情况,而不是单单看到各个进程的 CPU 使用率和内存使用率(使用场景不一样)。

上方 vmstat 1,表示采集每秒的数据。下面我们来看看每个参数的具体含义。

  • r :表示运行队列(就是说多少个进程真的分配到 CPU),我测试的服务器目前 CPU 比较空闲,没什么程序在跑,当这个值超过了 CPU 数目,就会出现 CPU 瓶颈 了。这个也和 top 的负载有关系,一般负载超过了 3 就比较高,超过了 5 就高,超过了 10 就不正常了,服务器的状态很危险。top 的负载类似每秒的运行队 列。如果运行队列过大,表示你的 CPU 很繁忙,一般会造成 CPU 使用率很高。
    b :表示阻塞的进程,这个不多说,进程阻塞,大家懂的。
  • swpd: 虚拟内存已使用的大小,如果大于 0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。
  • free :空闲的物理内存的大小
  • Linux/Unix: 系统是用来存储,目录里面有什么内容,权限等的缓存
  • cache :直接用来记忆我们打开的文件,给文件做缓冲,我本机大概占用 300 多 M(这里是 Linux/Unix 的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached 会很快地被使用。)
  • si :每秒从磁盘读入虚拟内存的大小,如果这个值大于 0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。我的机器内存充裕,一切正常。
  • so :每秒虚拟内存写入磁盘的大小,如果这个值大于 0,同上。
  • bi :块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是 1024byte,我本机上没什么 IO 操作,所以一直是 0,但是我曾在处理拷贝大量数据(2-3T)的机器上看过可以达到 140000/s,磁盘写入速度差不多 140M 每秒
  • bo 块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和
  • bo一般都要接近0,不然就是IO过于频繁,需要调整。
  • in 每秒CPU的中断次数,包括时间中断
  • cs 每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。
  • us 用户CPU时间,我曾经在一个做加密解密很频繁的服务器上,可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。
  • sy 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
  • id 空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。
  • wt 等待IO CPU时间。

在性能测试工作中,主要使用vmstat 1 来查看当前系统是否有发生swap,主要关注si 和 so,如果说你当前系统swap中数据一直在发生变动,需要进行性能排查和调优

netstat命令-网络监控

Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 连接,多播成员 等等。
从整体上看,netstat 的输出结果可以分为两个部分:

参数说明:
-a或–all 显示所有连线中的Socket。
-A<网络类型>或–<网络类型> 列出该网络类型连线中的相关地址。
-c或–continuous 持续列出网络状态。
-C或–cache 显示路由器配置的快取信息。
-e或–extend 显示网络其他相关信息。
-F或–fib 显示路由缓存。
-g或–groups 显示多重广播功能群组组员名单。
-h或–help 在线帮助。
-i或–interfaces 显示网络界面信息表单。
-l或–listening 显示监控中的服务器的Socket。
-M或–masquerade 显示伪装的网络连线。
-n或–numeric 直接使用IP地址,而不通过域名服务器。
-N或–netlink或–symbolic 显示网络硬件外围设备的符号连接名称。
-o或–timers 显示计时器。
-p或–programs 显示正在使用Socket的程序识别码和程序名称。
-r或–route 显示Routing Table。
-s或–statistics 显示网络工作信息统计表。
-t或–tcp 显示TCP传输协议的连线状况。
-u或–udp 显示UDP传输协议的连线状况。
-v或–verbose 显示指令执行过程。
-V或–version 显示版本信息。
-w或–raw 显示RAW传输协议的连线状况。
-x或–unix 此参数的效果和指定"-A unix"参数相同。
–ip或–inet 此参数的效果和指定"-A inet"参数相同。
实用命令实列
列出所有端口 (包括监听和未监听的)

列出所有 tcp 端口 netstat -at

列出所有 udp 端口 netstat -au

dstat- 超级监控工具

dstat是一个全能的性能监控工具,整合了CPU、内存、磁盘、网络等几乎所有的监控项,支持实时刷新。
安装dstat

1.yum install -y dstat

在日常性能测试工作中,最常用的命令是

1.dstat -tcmnd --disk-util

Linux监控操作系统CPU、内存、磁盘、网络和dstat相关推荐

  1. linux系统CPU,内存,磁盘,网络流量监控脚本

    前序 1, #cat /proc/stat/  信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2, #vmstat –s   或者 #vmstat    虚拟内存统 ...

  2. linux监控cpu内存磁盘网络使用率,linux服务器性能——CPU、内存、流量、磁盘使用率的监控...

    4. 什么是AJAX 术语Ajax用来描述一组技术,它使浏览器可以为用户提供更为自然的浏览体验.在Ajax之前,Web站点强制用户进入提交/等待/重新显示范例,用户的动作总是与服务器的"思考 ...

  3. kvm性能优化方案---cpu/内存/磁盘/网络

    kvm性能优化方案 kvm性能优化,主要集中在cpu.内存.磁盘.网络,4个方面,当然对于这里面的优化,也是要分场景的,不同的场景其优化方向也是不同的,下面具体聊聊这4个方面的优化细节. cpu 在介 ...

  4. Linux内核如何查看cpu位数,查看linux系统内核、CPU内存、系统位数的相关命令

    查看linux系统内核.CPU内存.系统位数的相关命令 以我的笔记本为例,看看相关命令. HP-NX6120,赛扬1.5G,2根内存条(1G + 512M),操作系统Ubuntu8.04. 查看Lin ...

  5. Linux系统监控命令整理汇总-掌握CPU,内存,磁盘IO等找出性能瓶颈

    的性能有问题,总之,每到晚上挖站否的主机就出现了不稳定的情况,系统负载忽高忽低.利用服务器日志分析利器:ngxtop和GoAccess也能查出有一些IP一直在不断地扫描服务器端口还有WP后台. 但是, ...

  6. AIX和LINUX主机 CPU 内存 磁盘使用率监控

    AIX监控 磁盘使用率监控 df -g|grep -v Filesystem|grep -v proc|awk ' gsub(/%/,"",$4) {print $7 " ...

  7. Linux下查看CPU/内存/硬盘的shell命令

    1.cpu查看 1)cpu个数:#cat /proc/cpuinfo | grep "physical id" | uniq | wc -l 2)cpu核数:#cat /proc/ ...

  8. Linux/Android的cpu/memory/磁盘占用情况

    一.查看内存使用率 <1>.free命令 freetotal used free shared buffers cached Mem: 246788 41004 205784 160 64 ...

  9. linux内存跑分,RaspberryPi 4B 4G版本跑分测|CPU|内存|IO|网络|性能全面测试

    前言 拿到手最新的RaspberryPi 4B 4G版本,新版本的4修复了之前的硬件bug. 直接官方安装软件刷上了最新版本的Linux raspberrypi 4.19.97,MicroSD卡选用的 ...

最新文章

  1. PNN神经网络预测类别的例子
  2. 1.springMVC+spring+Mybatis的整合思路
  3. 【DP】【BFS】迷之阶梯
  4. apache pdfbox_Apache PDFBox 2
  5. JSP作业1--5!
  6. inside uboot (六) DRAM芯片的控制线及时序
  7. 区块链浏览器_如何用区块链浏览器实现链上数据追踪?
  8. js赋值与逻辑运算的疑问
  9. layui按条件隐藏表格列
  10. 学习Caffe(一)使用Caffe
  11. 不规则裁剪图片css,在css中将div剪裁成不规则形状的方法
  12. JAVA模板模式,简历模板(例子)
  13. 更好的为学计算机帮助英语,北京教委公布本科跨省转学名单,两学霸为学计算机转出北大...
  14. paoding 中文分词学习
  15. 鑫缘聚禾:拼多多拼团怎么拼
  16. 关于google浏览器打不开网页问题之容易被忽略的点
  17. 【LOJ NOI Round#2 Day1 T1】单枪匹马【矩阵】
  18. android 系统图片为壁纸后,壁纸拉伸的现象
  19. linux启动redis报错Failed to start Redis persistent key-value database
  20. [文萃画材·油画]芭蕾舞女梦幻而绝美

热门文章

  1. 网吧服务器掉硬盘,网吧服务器磁盘压力大的解决过程
  2. 题解报告:hdu 1846 Brave Game(巴什博弈)
  3. 游戏版号拿到了,可公司破产了
  4. 安装到部署 火绒安全企业新品究竟有多简?
  5. 打印当前页面指定元素中的内容
  6. 二叉树的公共祖先问题
  7. css通知页面,CSS3 transition 实现通知消息轮播条
  8. 数据库逻辑设计之 三大范式 及 反范式化 优缺点
  9. mysql创建数据库(详细)
  10. 等保知识|测评高风险项详解:安全管理部分