Shell常用脚本:监控本机内存使用率

x33g5p2x  于2022-02-18 转载在 Shell  
字(1.2k)|赞(0)|评价(0)|浏览(807)

free内存不够,则从buffer、cache中取内存概念total:总内存,物理内存总数used:已经使用的内存数free:空闲的内存数shared:多个进程共享的内存数buffer、cache:缓存内存数available:还可以被应用程序使用的物理内存大小 == 约等于 free + buffer + cacheswap:虚拟内存

方案1 == free命令

memoryInfo.sh

  1. #!/bin/bash
  2. totalMemory=$(free | awk 'NR==2{print $2}')
  3. usedMemory=$(free | awk 'NR==2{print $3}')
  4. freeMemory=$(free | awk 'NR==2{print $4}')
  5. cachedMemory=$(free | awk 'NR==2{print $6}')
  6. # echo -e "总内存: $(($totalMemory/1024/1024))GB"
  7. echo -e "总内存: $(printf "%.2f" `echo "scale=2;$totalMemory/1024/1024"|bc`)GB"
  8. echo -e "内存利用率: $(($usedMemory * 100 / $totalMemory)) %"
  9. echo -e "缓存利用率: $(($cachedMemory * 100 / $totalMemory)) %"
  10. echo -e "剩余内存率: $(($freeMemory * 100 / $totalMemory)) %"

方案2 == /proc/meminfo文件

memoryRate2.sh

  1. #!/bin/bash
  2. totalMemory=$( head -9 /proc/meminfo | awk 'NR==1{print $2}')
  3. usedMemory=$( head -9 /proc/meminfo | awk 'NR==9{print $2}')
  4. freeMemory=$( head -9 /proc/meminfo | awk 'NR==2{print $2}')
  5. cachedMemory=$( head -9 /proc/meminfo | awk 'NR==4{buffers=$2}NR==5{print buffers+$2}')
  6. # echo $totalMemory;
  7. # echo $usedMemory;
  8. # echo $freeMemory;
  9. # echo $cachedMemory;
  10. echo -e "usedMemoryRate: $(($usedMemory * 100 / $totalMemory)) %"
  11. echo -e "cachedMemoryRate: $(($cachedMemory * 100 / $totalMemory)) %"
  12. echo -e "freeMemoryRate: $(($freeMemory * 100 / $totalMemory)) %"

相关文章