0. 引言:系统内存是硬件系统中必不可少的部分 , 定时查看系统内存资源运行情况 , 可以帮助我们及时发现内存资源是否存在异常占用 , 确保业务的稳定运行 。
例如:定期查看公司的网站服务器内存使用情况 , 可以确保服务器的资源是否够用 , 或者发现服务器内存被占用异常可以及时解决 , 避免因内存不够导致无法访问网站或访问速度慢的问题 。
因此 , 对于 linux 管理员来说 , 在日常工作中能够熟练在 Linux 系统下检查内存的运行状况就变得尤为重要!
查看内存的运行状态并非难事 , 但是针对不同的情况使用正确的方式查看呢?
一口君整理了几个 个非常实用的 Linux 内存查看方法
- 1、free命令
- 2、 vmstat命令
- 3、 /proc/meminfo 命令
- 4、 top命令
- 5、 htop 命令
- 6、查看进程内存信息
文章插图
该图很好的描述了OS内存的使用和分配等详细信息 。建议大家配合该图来一起学习和理解内存的一些概念 。
一、free命令free 命令可以显示当前系统未使用的和已使用的内存数目 , 还可以显示被内核使用的内存缓冲区 。
1. free 命令语法:
free [options]
free 命令选项:-b # 以Byte为单位显示内存使用情况;-k # 以KB为单位显示内存使用情况;-m # 以MB为单位显示内存使用情况;-g # 以GB为单位显示内存使用情况 。-o # 不显示缓冲区调节列;-s<间隔秒数> # 持续观察内存使用状况;-t # 显示内存总和列;-V # 显示版本信息 。
2. free 命令实例free -t# 以总和的形式显示内存的使用信息free -h -s 10 # 周期性的查询内存使用信息 , 每10s 执行一次命令free -h -c 10 #输出10次在版本 v3.2.8 , 就是输出一次!需要配合 -s 使用 。在版本 v3.3.10 , 不加-s , 就默认1秒输出一次 。free -V #查看版本号
v3.2.8文章插图
v3.3.10
文章插图
下面先解释一下输出的内容:
文章插图
二、vmstat 指令vmstat命令是最常见的Linux/Unix监控工具 , 用于查看系统的内存存储信息 , 是一个报告虚拟内存统计信息的小工具 , 属于sysstat包 。
vmstat 命令报告包括:进程、内存、分页、阻塞 IO、中断、磁盘、CPU 。
可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率 , 内存使用 , 虚拟内存交换情况,IO读写情况 。
这个命令是我查看Linux/Unix最喜爱的命令 , 一个是Linux/Unix都支持 , 二是相比top , 我可以看到整个机器的CPU,内存,IO的使用情况 , 而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样) 。
1. 命令格式:
vmstat -s(参数)
2. 举例一般vmstat工具的使用是通过两个数字参数来完成的 , 第一个参数是采样的时间间隔数 , 单位是秒 , 第二个参数是采样的次数 , 如: root@local:~# vmstat 2 1procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- rbswpdfreebuffcachesisobiboincs us sy id wa 100 3498472 315836 381954000012000 1000
2表示每个两秒采集一次服务器状态 , 1表示只采集一次 。实际上 , 在应用过程中 , 我们会在一段时间内一直监控 , 不想监控直接结束vmstat就行了,例如:
文章插图
这表示vmstat每2秒采集数据 , 按下ctrl + c结束程序 , 这里采集了3次数据我就结束了程序 。
项目
含义
说明
Procs(进程)
r
等待执行的任务数
展示了正在执行和等待cpu资源的任务个数 。当这个值超过了cpu个数 , 就会出现cpu瓶颈 。
B
等待IO的进程数量
Memory(内存)
swpd
正在使用虚拟的内存大小 , 单位k
推荐阅读
- Windows|Win10最佳免费杀软Defender“翻车”了!用户遭殃:内存占用高、黑屏
- Linux用户及权限管理
- 记一次 .NET 某招聘网后端服务 内存暴涨分析
- 新手必须掌握的linux命令
- linux内核--自旋锁的理解
- 使用MobaXterm管理远程Linux服务器
- linux smb漏洞?SMB协议漏洞
- 内存页面置换
- Linux 系统将不再默认启用 AMD SME
- linux防火墙iptables常用操作笔记