여러 파일을 빠르게 작성하고 삭제하세요.
나는 일정 기간 동안 매초마다 많은 임시 파일을 작성하게 될 것입니다. 각각은 몇 밀리초 후에 삭제됩니다.
초당 약 2000개의 빠른 카메라 프레임 하위 집합을 처리하는 이미지 처리 소프트웨어가 있다고 가정해 보겠습니다. 각각은 파일에 기록된 다음 동일한 몇 밀리초 내에 파일에 일부 변경 사항이 적용되고 다시 읽고 삭제됩니다.
현재는 tmpfs
파일 시스템에서 작동하지만 그렇지 않다고 가정합니다.
아니 난 할 수 없어"그냥 이렇게 해서 고치세요", 이는 일부 레거시 통합에 필요합니다.
파일 시스템은 어떻게 응답합니까?
이것이 파일 시스템 옵션과 어떻게 상호 작용하는지 이해하고 싶습니다. 특히 파일 시스템 로그가 어떻게 상호 작용하는지 이해할 수 없습니다.
순진한 생각으로는 파일이 생성되고 삭제된 후에도 데이터가 디스크에 닿지 않기를 바랄 수도 있습니다. 메타데이터도 마찬가지입니다. 그리고 디렉토리에 이름을 쓰고 삭제하면 디렉토리는 그대로겠죠?
놀라운 효과
옳은.
디렉터리는 한 위치를 재사용하여 새 파일 이름을 저장하거나 다른 위치를 재사용하는 등 다양한 방법으로 동일한 파일 이름을 나타낼 수 있습니다.
이는 디스크 블록이 기록될 때 파일 시스템 수준 변경 없이 변경될 수 있으므로 디스크에 기록해야 함을 의미합니다.
하지만 네 가지 작업 각각에 대해 한 번만 작성하지 않도록 할 수 있나요? 저널은 어떻습니까? 내 임시 데이터가 로그에 남나요? 차단할 수 있나요?
질문 1: 이 작업을 수행할 때 주의하거나 기억해야 할 사항은 무엇입니까?
답변1
이론은 말씀드릴 수 있지만 실제 경험이 없습니다. 나는 파일이 몇 초마다 메모리에서 디스크로 푸시되고 충분히 빨리 삭제된 파일은 결코 디스크에 남지 않는다는 것을 읽었습니다. 일기에도 없습니다.
파일이 푸시되기 전 5초 동안 존재해야 하는지, 아니면 체크포인트 순간(5초마다 발생)에 정확히 존재하는지 잘 모르겠습니다. 아마도 후자일 것이다. 그렇다면 일부 파일이 디스크에 흡수됩니다. 이는 정기적으로 발생하며 짧은 기간 동안 지속됩니다.
희귀한설치 옵션나는 그것을 조사하는 것이 좋습니다. 간격을 늘려 이러한 체크포인트 순간을 임의로 줄일 수 있지만 여전히 발생합니다. 설명할 수 없는 이유 때문에 할당 지연은 데이터를 디스크에 푸시하는 부작용도 있습니다. 나는 이것에 대해 어디서 읽었는지 기억이 나지 않습니다.
- commit=nrsec(nrsec초마다 모든 데이터와 메타데이터를 동기화합니다. 기본값은 5초입니다. 0은 기본값을 나타냅니다.)(Ext3)
- Ext4의 delalloc(쓰기 시간까지 블록 할당을 지연합니다.)
제안된 솔루션:인메모리 파일 시스템을 사용합니다. 이렇게 하면 디스크에 아무 것도 남지 않게 됩니다. tmpfs인지 ramfs인지 스왑이 가능한지, 지정된 용량 이상으로 확장이 가능한지 등 약간의 차이가 있습니다. 나는 이것이 기본적으로 당신이 지금 사용하고 있는 것임을 알고 있습니다. /tmp일 필요는 없습니다. 모든 디렉토리에 이 유형의 새 파일 시스템을 생성할 수 있습니다.
http://www.thegeekstuff.com/2008/11/overview-of-ramfs-and-tmpfs-on-linux/