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