Ubuntu에서 파일 삭제가 느린 이유는 무엇입니까?

Ubuntu에서 파일 삭제가 느린 이유는 무엇입니까?

Linux에서 파일을 삭제하면 실제로 삭제되지 않고 inode 테이블의 링크만 해당 파일에서 제거된다는 stackoveflow 게시물을 읽었습니다. 그렇다면 왜 상수 시간 작업을 삭제하지 않습니까?

나는 또한 실험을 시도했습니다. 1500개의 이미지가 있는 폴더를 만들고 이러한 이미지의 tar 개체를 만들었습니다. 디렉토리와 tar 파일의 크기는 모두 동일합니다. tar 객체와 1500개의 이미지 디렉터리를 삭제하는 타이밍은 다음과 같습니다.

tar 파일 삭제 중 time rm test.tar:


real    0m0.024s
user    0m0.001s
sys     0m0.024s

디렉토리 삭제 중:time rm -r test


real    0m0.219s
user    0m0.024s
sys     0m0.191s

제가 이해한 바에 따르면 이러한 시간 차이는
파일 1개 연결 해제와 파일 1,500개 연결 해제로 인해 발생합니다. 하지만 tar 객체 삭제가 1500배 빨라야 하지 않나요?

답변1

왜냐하면 그것은~ 아니다간단한 "삭제된 단일 inode 표시" 작업:https://www.slashroot.in/how-does-file-deletion-work-linux

적어도 ext4 파일 삭제는 익스텐트 사용으로 인해 ext2/ext3 파티션보다 훨씬 빠릅니다.

SSD의 경우 SSD 수명을 연장하기 위해 파일에 속한 모든 블록을 물리적으로 삭제하도록 SSD에 지시하는 "폐기" 옵션을 사용하기 때문에 파일 삭제가 필요한 것보다 느려질 수 있습니다. 그것은 매우~ 아니다비활성화하는 것이 좋습니다.

관련 정보