free -h의 출력이 free --giga와 다른 이유는 무엇입니까?

free -h의 출력이 free --giga와 다른 이유는 무엇입니까?

매우 이상한 문제에 직면했습니다.

내 Fedora PC에는 12GB 스왑 파일이 있습니다.

하지만 발행하면 다음과 같은 결과를 free -h얻습니다.

              total        used        free      shared  buff/cache   available
Mem:          7.7Gi       1.8Gi       3.7Gi       409Mi       2.2Gi       5.2Gi
Swap:          11Gi          0B        11Gi

보시다시피 내 스왑 공간은 11GB로 표시되지만 실제로는 12GB입니다.

이것은 내가 사용하면 수정됩니다.free --giga

              total        used        free      shared  buff/cache   available
Mem:              8           1           3           0           2           5
Swap:            12           0          12

여기서는 올바른 출력을 얻고 있습니다.

왜 사용하면 차이가 나는 걸까요? -h 그리고 --giga ?

여기서 무슨 일이 일어나고 있는 걸까요?

답변1

두 명령은 서로 다른 단위를 사용합니다. -h값은 1024의 거듭제곱으로 표시됩니다(접미사 "Gi"에 유의하세요).기가바이트), --giga1000의 거듭제곱 값을 표시합니다.

귀하의 경우 12GB(기가바이트)는 12,000,000,000바이트이며, 이는 11.2GiB(가장 가까운 0.1로 반올림됨), free11로 반올림됩니다.

free -h플래그를 통해 10의 거듭제곱을 강제로 사용할 수 있습니다 --si.

free -h --si

units다음 유형의 변환을 수행할 수 있습니다.

$ units 12GB GiB
    * 11.175871
    / 0.089478485

관련 정보