자유 명령 - 변환 후 다른 출력

자유 명령 - 변환 후 다른 출력

CentOS 6 서버에서 RAM을 모니터링하고 있는데 free -h사용 가능한 15G가 보이면 괜찮습니다. 하지만 free -b1641154969바이트가 보이면 1,641154969G와 같습니다.


free -h
             total       used       free     shared    buffers     cached
Mem:           15G       3.0G        12G       1.7M        39M       671M
-/+ buffers/cache:       2.3G        12G 
Swap:         7.7G         0B       7.7G 

free -b
             total       used       free     shared    buffers     cached
Mem:    1641154969 3238035456 1317351424    1781760   41451520  704331776
-/+ buffers/cache: 2492252160 1391929753 
Swap:   8279552000          0 8279552000 

답변1

CentOS 6에서 사용되는 것과 같은 이전 버전에서는 free값당 최대 10자리만 표시합니다. 표시된 "1641154969"에 마지막 숫자가 없습니다. 이건 고정됐어버전 3.3.10 기준; free이제 최대 11자리까지 표시됩니다. 이는 하나의 숫자를 표시하기에 충분합니다.애비바이트메모리. (확인하지는 않았지만 버전 3.3.0(이전이 아닌 경우)의 변경 사항으로 인해 이 문제가 해결될 수도 있습니다.)

표시된 160억 바이트와 "15G"의 차이는 여기서 스케일링이 16411549690을 1024×1024×1024로 나눈 값이 15.284이므로 15로 표시됩니다. 현재 버전이 장치에 free추가되어 i장치가 사용 중임을 명확히 합니다.바이너리 접두사.

답변2

이 질문은 두 가지 다른 범주를 혼동합니다바이트단위, 즉 십진수G기가바이트그리고 바이너리운이 좋은더블바이트:

   Prefixes for multiples of
   bits (bit) or bytes (B)
   Decimal              Binary
   Value        SI      Value       IEC
   1000   10^3  k kilo  1024   2^10 Ki kibi
   1000^2 10^6  M mega  1024^2 2^20 Mi mebi
   1000^3 10^9  G giga  1024^3 2^30 Gi gibi

free -h명령은 인쇄합니다기비바이트, free -b인쇄하는 동안바이트. 수학을 수행하십시오. (먼저 0보상할 바이트 수 뒤에 a를 추가하십시오.free에서 지적된 오류스티븐 지터답변):

echo $(( 16411549690 / (10**9) ))  # gigabytes
echo $(( 16411549690 / (2**30) ))  # gibibytes

산출:

16
15

과거에 하드 드라이브 공급업체는 이러한 일반적인 혼란을 이용하여 한 공급업체가 집단 소송에서 패하기도 했습니다. 바라보다오린 사피어(Orin Safier) ​​v. 웨스턴 디지털 코퍼레이션(Western Digital Corporation),안에2006년에는 화가 난 구매자들이 상을 받았습니다.$30실제 돈이 아닌 각 백업 소프트웨어의 가치그들의 문제 때문에.

관련 정보