사용 가능한 메모리를 백분율로 표시하는 명령

사용 가능한 메모리를 백분율로 표시하는 명령

사용 가능한 메모리를 백분율로 표시하고 싶습니다. 나는 사용 가능한 메모리가 아니라 사용된 메모리를 표시하고 있다고 확신합니다. 아니면 내가 틀렸나요?

mem=`free -m | awk 'NR ==2{printf $3,$2,$3*100/$2}'`
echo $mem

답변1

사용 가능한 메모리 양을 백분율로 표시하려면 열 4(사용 가능)를 열 2(전체)로 나누고 그 결과에 100을 곱합니다.

예를 들어:

[user@localhost ~]$ free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }'
free: 97.32 %

사용된 금액을 표시하려면 3열(사용함)을 2열(전체)로 나누고 그 결과에 100을 곱하면 됩니다.

[user@localhost ~]$ free | awk '/^Mem/ { printf("Used: %.2f %\n", $3/$2 * 100.0) }'
Used: 2.75 %

%g를 사용하여 지정된 유효 자릿수로 반올림할 수 있습니다.

예를 들어, 부동 소수점 값이 아닌 정수만 필요한 경우 지정된 부동 소수점 자릿수를 0(영)으로 변경할 수 있습니다. 첫 번째 예에서 %.2f는 2개의 부동 소수점 값을 나타냅니다.

다음은 부동 소수점 값 0의 예입니다.

[user@localhost ~]$ free | awk '/^Mem/ { printf("Used: %.0f %\n", $3/$2 * 100.0) }'
Used: 3 %

여기에도 답변이 있습니다.

https://stackoverflow.com/questions/10585978/linux-command-for-percentage-of-memory-that-is-free

답변2

이 시도,

free | awk '/^Mem/ { a=(($3-$7)/$2 * 100); print a"% of Memory used"  }'
3.43143% of Memory used

free | awk '/^Mem/ { a=(($4+$7)/$2 * 100); print a"% of Memory free"  }'
96.5662% of Memory free

free | awk '/^Mem/ { a=(($7)/$2 * 100); print a"% of Memory cached"  }'
80.4204% of Memory cached

참고: 값을 교차 확인하세요.glances

관련 정보