Linux df 결과에 대한 디스크 캐시 영향

Linux df 결과에 대한 디스크 캐시 영향

df 결과를 신뢰할 수 없게 만드는 문제가 있습니다. 저는 sles 11 sp3에서 xfs 파일 시스템을 사용하고 있습니다.
기본적으로 디스크 캐시를 지우기 전과 후의 여유 크기에는 큰 차이(몇 GB)가 있습니다. 추가 스토리지를 사용하는 디스크 캐시가 왜 있는지 아는 사람이 있습니다.
예를 들어:

VideoEdge:/ # df
Filesystem     1K-blocks      Used Available Use% Mounted on
...
/dev/sdb2      870942208 824794856  46147352  95% /mediadb
/dev/sdc1      975746564 924536548  51210016  95% /mediadb1
/dev/sdd1      975746564 153177500 822569064  16% /mediadb2

VideoEdge:/ # echo 3 > /proc/sys/vm/drop_caches 

VideoEdge:/ # df
Filesystem     1K-blocks      Used Available Use% Mounted on
/dev/sdb2      870942208 822225756  48716452  95% /mediadb
/dev/sdc1      975746564 923374888  52371676  95% /mediadb1
/dev/sdd1      975746564 148323524 827423040  16% /mediadb2
VideoEdge:/ # df

위에서 보면 디스크 공간을 비운 후에 사용 가능한 공간이 더 많아진 것을 알 수 있습니다.

우리는 df를 사용하여 얼마나 많은 공간을 사용할 수 있는지 추정하고 df가 stporage가 95% 찼다고 말할 때 오래된 데이터를 제거하려고 합니다. 디스크 캐시가 예측할 수 없는 저장 공간을 차지하기 때문에 문제가 발생합니다.

디스크 캐시가 일시적으로 스토리지를 소비하는 이유를 아는 사람이 있습니까? 디스크 캐시가 차지하는 양이나 디스크 캐시가 차지할 수 있는 최대값을 계산할 수 있는 방법이 있습니까?

우리는 때때로 성능에 영향을 미칠 수 있는 디스크 캐시를 지우고 싶지 않습니다.

VideoEdge:/ # df
Filesystem     1K-blocks      Used Available Use% Mounted on
rootfs           8259484   5592116   2247724  72% /
udev             2021220       228   2020992   1% /dev
tmpfs            2021220       144   2021076   1% /dev/shm
/dev/sda1        8259484   5592116   2247724  72% /
/dev/sda3      463282160  75389072 387893088  17% /var
/dev/sdb1      104804356     32928 104771428   1% /var/opt/americandynamics/venvr/clipexport
/dev/sdb2      870942208 821370196  49572012  95% /mediadb
/dev/sdc1      975746564 923423496  52323068  95% /mediadb1
/dev/sdd1      975746564 148299180 827447384  16% /mediadb2

/dev/sdb2 on /mediadb type xfs (rw,noatime,nodiratime,attr2,nobarrier,inode64,allocsize=4096k,noquota)
/dev/sdc1 on /mediadb1 type xfs (rw,noatime,nodiratime,attr2,nobarrier,inode64,allocsize=4096k,noquota)
/dev/sdd1 on /mediadb2 type xfs (rw,noatime,nodiratime,attr2,nobarrier,inode64,allocsize=4096k,noquota)

답변1

다음을 참조하세요:

내 XFS 파일 시스템이 갑자기 더 많은 공간을 소비하고 희소 파일로 가득 찬 이유는 무엇입니까?

이는 XFS의 동적 사전 할당 기능의 결과입니다. 이는 기본적으로 파일 조각화를 방지하기 위해 쓰기를 통합하는 파일 버퍼입니다. 몇 가지 해결 방법이 있습니다.

  • du --apparent-size도움이 될 수 있습니다.
  • XFS 파일 시스템에 대한 마운트 옵션은 다음에 설명되어 있습니다.연결된 질문.

두 경우 모두 파일 시스템이 위험할 정도로 가득 찬 수준(95%+)에 있습니다. 사용률이 80% 미만이어야 한다는 점을 고려하면 적은 양의 버퍼 공간은 관련이 없습니다. df주어진 시간에 실제로 사용되는 결과이기 때문에 결과를 사용할 수도 있습니다 .

관련 정보