"장치에서 쓰기 캐싱 활성화"를 비활성화하면 SSD 또는 HDD에 효과가 없는 것 같습니다.

"장치에서 쓰기 캐싱 활성화"를 비활성화하면 SSD 또는 HDD에 효과가 없는 것 같습니다.

우리는 경고 없이 전원이 차단될 경우 시스템(현재 Windows 7 임베디드에서 실행 중)이 어떻게 작동하는지 테스트하고 있습니다. 우리 PC는 의도적으로 UPS에서 실행되지 않습니다.

한 테스트에서는 메모장에서 간단한 텍스트 파일을 생성하고 일부 텍스트를 추가하고 파일을 저장한 다음 몇 초 후에 전원을 껐습니다. 즉, 정상적인 종료가 아닙니다.

전원을 다시 켰을 때 파일 변경 사항이 저장되지 않았습니다.

추가 조사를 통해 Crucial MX200 SSD에 "장치에서 쓰기 캐싱 활성화"가 선택되어 있는 것으로 나타났습니다.

후에선택 취소 중해당 설정을 사용하여 디스크 쓰기가 캐시되지 않고 즉시 기록된다는 가정 하에 테스트를 다시 시도했습니다.

그러나 이전과 마찬가지로 파일을 '저장'한 후 몇 초 후에 전원을 끄면 파일 변경 사항이 여전히 저장되지 않았습니다.

업데이트 - 우리는 두 가지 브랜드의 SSD와 HDD를 사용하여 이 동작을 테스트했으며 동작은 동일합니다. 쓰기 캐싱이 비활성화되지 않는 것처럼 보입니다 ...

우리가 놓치고 있는 것이 또 있나요?

답변1

문제가 특정 브랜드나 드라이브 유형에만 국한된 것이 아니라는 것을 확인한 후에는 Windows 동작(이 경우에는 Windows 7)이라고 의심했습니다.

더 검색한 결과 다음 게시물을 발견했습니다. Windows는 쓰기 캐시를 얼마나 자주 플러시합니까?

이는 Windows 내부 파일 캐시를 완전히 플러시하는 데 8초가 걸리는 것을 확인합니다.

해결 방법은 여기에 표시된 대로 소스 코드를 업데이트하는 것이었습니다.https://jeffpar.github.io/kbarchive/kb/066/Q66052/.

를 사용하여 파일을 여는 동안 fopenMicrosoft 전용 모드 옵션 "c"를 마지막 옵션으로 포함했으며 _flushall()를 호출하기 직전에 사용했습니다 fclose().

관련 정보