Linux查询内存使用率 并使用命令计算出来
在 Linux 中,可以通过 free
命令 查询内存使用情况,并使用 awk
或 bc
命令计算出内存使用率。以下是具体方法:
1. 使用 free
和 awk
计算内存使用率
free
命令显示内存使用情况,awk
用于提取和计算数据。
命令:
free | awk '/Mem/{printf("内存使用率: %.2f%\n"), $3/$2*100}'
输出示例:
内存使用率: 41.23%
说明:
Mem
:匹配内存行。$3
:已用内存(used
)。$2
:总内存(total
)。printf("内存使用率: %.2f%\n")
:格式化输出,保留两位小数。
2. 使用 free
和 bc
计算内存使用率
bc
是一个高精度计算器,可以用于浮点数运算。
命令:
used=$(free | awk '/Mem/{print $3}')
total=$(free | awk '/Mem/{print $2}')
echo "内存使用率: $(echo "scale=2; $used/$total*100" | bc)%"
输出示例:
内存使用率: 41.23%
说明:
scale=2
:设置bc
的输出精度为两位小数。$used/$total*100
:计算内存使用率。
3. 使用 /proc/meminfo
和 awk
计算内存使用率
/proc/meminfo
文件包含详细的内存信息。
命令:
awk '/MemTotal/{total=$2} /MemAvailable/{available=$2} END{printf("内存使用率: %.2f%\n"), (total-available)/total*100}' /proc/meminfo
输出示例:
内存使用率: 41.23%
说明:
MemTotal
:总内存。MemAvailable
:可用内存。(total-available)/total*100
:计算内存使用率。
4. 使用 vmstat
和 awk
计算内存使用率
vmstat
命令可以显示内存统计信息。
命令:
vmstat -s | awk '/total memory/{total=$1} /used memory/{used=$1} END{printf("内存使用率: %.2f%\n"), used/total*100}'
输出示例:
内存使用率: 41.23%
说明:
total memory
:总内存。used memory
:已用内存。used/total*100
:计算内存使用率。
5. 使用 sar
和 awk
计算内存使用率
sar
是 sysstat
工具包的一部分,可以显示内存使用率。
命令:
sar -r 1 1 | awk '/Average:/{printf("内存使用率: %.2f%\n"), $4}'
输出示例:
内存使用率: 41.23%
说明:
Average:
:匹配平均内存使用率行。$4
:内存使用率字段。