파일 생성/삭제 시 "tmpfs"가 디스크를 읽고 쓰는 이유는 무엇입니까?

파일 생성/삭제 시 "tmpfs"가 디스크를 읽고 쓰는 이유는 무엇입니까?

질문: 에서 파일을 생성하거나 삭제할 때 디스크 읽기와 쓰기가 동시에 발생하는 이유는 무엇입니까 tmpfs?

in을 사용하여 설치합니다 tmpfs(설치하려면 컴퓨터에 추가하고 실행한 다음 컴퓨터를 다시 시작하세요). 내가 아는 한, 파일 내용은 RAM에 저장되고, 파일 inode/메타데이터도 RAM에 저장됩니다.mount -t tmpfs -o size=1G tmpfs "/SCRATCHSPACE"/etc/rc.local/etc/rc.localmkdir /SCRATCHSPACEtmpfs

파일 생성, 쓰기 및 삭제를 위한 Bash 스크립트:

cd /SCRATCHSPACE
for i in {0..10000}; do echo foobar > $i; rm $i; done

또는

cd /SCRATCHSPACE
touch {0..10000} && rm {0..10000}

위 코드를 실행하면 하드 드라이브 사용량 표시기가 즉시 시작됩니다. 상상만 하는 것이 아닌지 확인하기 위해 다음도 사용합니다.

grep -e Dirty: -e Writeback: /proc/meminfo

파일 생성/삭제와 관련이 있습니다. 더티 및 쓰기 저장은 지속적으로 에서 으로 이동합니다 0 KB. 500 KBBash 스크립트에서 생성된 파일 수를 늘리면 Dirty파일 수가 선형적으로 증가합니다. (불필요한) 쓰기를 플러시하려면 syncBash 스크립트를 실행한 후 기다리면( 없이도 sync) 하드 드라이브가 움직이는 소리가 들립니다 .

이는 스왑을 끈 상태에서 Ubuntu 16.04와 Ubuntu 20.04 모두에서 재현 가능합니다.

추가 정보:

$ df -h /SCRATCHSPACE
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           1.0G  10M  1.0G  0% /SCRATCHSPACE

$ cat /proc/swaps
Filename                Type        Size    Used    Priority

$ cat /etc/fstab
UUID=<36 characters for UUID> /               ext4    errors=remount-ro 0       1
UUID=<10 characters for UUID>  /boot/efi       vfat    umask=0077      0       1

바이러스 백신, 로거 또는 이와 유사한 것이 설치되어 있지 않습니다(Ubuntu와 함께 제공되는 것은 무엇이든 설치하기만 하면 됩니다).

운영 체제(16.04 및 20.04)는 라이브 USB(새로 설치)를 통해 설치됩니다. 한 버전에서 다른 버전으로 업그레이드되지 않습니다.

관련 정보