网站建设案例代理商,天津百度seo排名优化,站长素材免费下载,建设工程施工合同2021文章目录前言一. free命令介绍二. 语法格式及常用选项三. 参考案例3.1 查看free相关的信息3.2 以MB的形式显示内存的使用情况3.3 以总和的形式显示内存的使用情况3.4 周期性的查询内存的使用情况3.5 以更人性化的形式来查看内存的结果输出四. free在脚本中的应用总结前言
大家… 文章目录前言一. free命令介绍二. 语法格式及常用选项三. 参考案例3.1 查看free相关的信息3.2 以MB的形式显示内存的使用情况3.3 以总和的形式显示内存的使用情况3.4 周期性的查询内存的使用情况3.5 以更人性化的形式来查看内存的结果输出四. free在脚本中的应用总结前言
大家好又见面了我是沐风晓月本文是专栏【linux基本功-基础命令实战】的第53篇文章。
专栏地址[linux基本功-基础命令专栏] 此专栏是沐风晓月对Linux常用命令的汇总希望能够加深自己的印象以及帮助到其他的小伙伴。
如果文章有什么需要改进的地方还请大佬不吝赐教。 个人主页我是沐风晓月 个人简介大家好我是沐风晓月双一流院校计算机专业 座右铭 先努力成长自己再帮助更多的人 一起加油进步 欢迎大家这里是CSDN我总结知识的地方喜欢的话请三连有问题请私信 一. free命令介绍
free 是一个 Linux 和 Unix 操作系统中常用的命令它用于显示系统中可用内存的总量、已用内存的总量、空闲内存的总量和缓存的内存量。
二. 语法格式及常用选项
依据惯例我们还是先查看帮助使用 free --help
[rootmufeng ~]# free --helpUsage:free [options]Options:-b, --bytes show output in bytes-k, --kilo show output in kilobytes-m, --mega show output in megabytes-g, --giga show output in gigabytes--tera show output in terabytes--peta show output in petabytes-h, --human show human-readable output--si use powers of 1000 not 1024-l, --lohi show detailed low and high memory statistics-t, --total show total for RAM swap-s N, --seconds N repeat printing every N seconds-c N, --count N repeat printing N times, then exit-w, --wide wide output--help display this help and exit-V, --version output version information and exit
为了更直观一些我们把常用的参数用表格来展示
参数描述-b以字节为单位显示内存使用情况-k以千字节为单位显示内存使用情况-m以兆字节为单位显示内存使用情况-g以吉字节为单位显示内存使用情况-h人性化显示内存使用情况以适合人类阅读的方式显示-s 秒数指定间隔秒数以连续监控内存使用情况-c 次数指定监控次数完成后退出-t在汇总行中显示内存总量。
有了具体的参数之后我们再来看实战案例
三. 参考案例
3.1 查看free相关的信息
[rootmufeng ~]# freetotal used free shared buff/cache available
Mem: 1863252 833224 376152 134604 653876 657068
Swap: 2097148 29448 2067700
这里出现的参数的解释
total物理内存总量。used已经使用的物理内存量。free尚未使用的物理内存量。shared被共享使用的物理内存量buffers被缓存的物理内存量。cached被缓存的硬盘文件的物理内存量。available剩余可用的物理内存量。Swaptotal交换空间总量。Swap used已经使用的交换空间量Swap free尚未使用的交换空间量
示例输出 total used free shared buffers cached
Mem: 1024000 999000 24000 3000 12000 700000
-/ buffers/cache: 287000 737000
Swap: 524284 0 524284
上述示例输出解释
物理内存总量为1GB1024000KB。 已经使用的物理内存量为999MB999000KB。 尚未使用的物理内存量为24MB24000KB。 被共享使用的物理内存量为3MB3000KB。 被缓存的物理内存量为12MB12000KB。 被缓存的硬盘文件的物理内存量为700MB700000KB。 剩余可用的物理内存量为737MB737000KB。 交换空间总量为512MB524284KB。 已经使用的交换空间量为0。 尚未使用的交换空间量为512MB524284KB。
问题1 那buffers和cached都是缓存两者有什么区别呢
的确buffers 和 cached 都是用于缓存的内存但是它们的缓存对象不同
buffers用于缓存块设备如硬盘、光驱等的输入输出数据缓存的是磁盘块的数据。这个缓存会在数据被写入磁盘后被释放掉不会持久化到磁盘上。
cached用于缓存文件系统的数据缓存的是文件数据。这个缓存会在文件被修改时被写入磁盘从而变成持久化的缓存。
因此buffers 主要是用于优化磁盘 I/O 操作而 cached 主要是用于优化文件读取操作。在 Linux 系统中buffers 和 cached 都会占用未被应用程序使用的内存以提高系统性能和响应速度。当需要更多内存时它们可以被释放掉以供应用程序使用。
问题2 free中的available 是什么
“available” 的美音标是 /əˈveɪləbl/
available 字段是指系统中可用的内存量它表示系统当前可用于分配给新进程使用的内存量。这个值并不完全等于 free 字段因为还考虑了缓存的内存和已经被分配但可以被回收的内存。
available 字段的计算方法是free buffers cached - low water mark其中 low water mark 是一个系统内部预留的缓冲区用于保证系统能够保持足够的缓存能力以应对高峰期的内存需求。
available 字段可以用来估算系统还可以为新进程提供的内存空间因为它考虑了系统当前缓存的内存以及一些可以被回收的内存。但是需要注意的是这个值并不是绝对精确的因为它只是一个估算值而且可能会随着系统使用情况的变化而变化。
从应用程序的角度来说可用内存系统free memorybufferscached。
3.2 以MB的形式显示内存的使用情况
以M对形式显示此处用的是MB
[rootmufeng ~]# free -mtotal used free shared buff/cache available
Mem: 1819 813 367 131 638 641
Swap: 2047 28 2019
[rootmufeng ~]#
3.3 以总和的形式显示内存的使用情况
此处使用 -t参数代码如下
[rootmufeng ~]# free -ttotal used free shared buff/cache available
Mem: 1863252 833156 376216 134604 653880 657136
Swap: 2097148 29448 2067700
Total: 3960400 862604 2443916
[rootmufeng ~]#
3.4 周期性的查询内存的使用情况
-s参数可以周期行的查询内存的使用情况
比如每五秒钟查询一次
[rootmufeng ~]# free -s 5total used free shared buff/cache available
Mem: 1863252 833220 376152 134604 653880 657072
Swap: 2097148 29448 2067700total used free shared buff/cache available
Mem: 1863252 833220 376152 134604 653880 657072
Swap: 2097148 29448 2067700
可以看到每五秒钟会跳一次也就是查询一次。
3.5 以更人性化的形式来查看内存的结果输出
此处我们用到 -h参数
[rootmufeng ~]# free -htotal used free shared buff/cache available
Mem: 1.8G 813M 367M 131M 638M 641M
Swap: 2.0G 28M 2.0G
[rootmufeng ~]#
以上就是free命令的全部内容后续如果有新的感悟在继续添加。
四. free在脚本中的应用
下面是一个关于free命令的脚本示例该脚本可以在Linux系统中使用用于监视系统的内存使用情况并在内存不足时发出警告。
#!/bin/bashTHRESHOLD80 # 内存使用率超过80%时发出警告while true
doOUTPUT$(free | grep Mem)TOTAL$(echo $OUTPUT | awk {print $2})USED$(echo $OUTPUT | awk {print $3})FREE$(echo $OUTPUT | awk {print $4})PERCENTAGE$((USED*100/TOTAL))DATE$(date)if [ $PERCENTAGE -gt $THRESHOLD ]; thenecho 警告内存使用率超过 $THRESHOLD% 在 $DATEfisleep 10
done
脚本解释 THRESHOLD80定义一个变量THRESHOLD表示内存使用率的阈值即当内存使用率超过80%时发出警告。 while true无限循环不停地监视内存使用情况。 OUTPUT$(free | grep Mem)执行free命令并使用grep命令过滤出其中包含“Mem”的行将输出结果赋值给变量OUTPUT。 TOTAL$(echo $OUTPUT | awk ‘{print $2}’)使用echo和awk命令从变量OUTPUT中提取出物理内存总量将结果赋值给变量TOTAL。 USED$(echo $OUTPUT | awk ‘{print $3}’)使用echo和awk命令从变量OUTPUT中提取出已使用的物理内存量将结果赋值给变量USED。 FREE$(echo $OUTPUT | awk ‘{print $4}’)使用echo和awk命令从变量OUTPUT中提取出尚未使用的物理内存量将结果赋值给变量FREE。 PERCENTAGE$((USED*100/TOTAL))计算内存使用率的百分比将结果赋值给变量PERCENTAGE。 DATE$(date)获取当前系统时间将结果赋值给变量DATE。 if [ $PERCENTAGE -gt $THRESHOLD ]; then如果内存使用率超过阈值即PERCENTAGE大于THRESHOLD则执行下一步。 echo “警告内存使用率超过 $THRESHOLD% 在 $DATE”在控制台上输出警告信息包括当前时间和内存使用率。 sleep 10休眠10秒等待下一次监视。
总结
free命令在日常工作中应用的比较广泛一定要认真学习记熟记牢常用参数。 好啦这就是今天要分享给大家的全部内容了我们下期再见✨ ✨ ✨ 如果你喜欢的话就不要吝惜你的一键三连了~