TRIM이 지원되지 않는 경우 플래시 드라이브는 어떻게 좋은 성능을 유지합니까?

TRIM이 지원되지 않는 경우 플래시 드라이브는 어떻게 좋은 성능을 유지합니까?

내가 아는 한 Windows 7 이전에는 TRIM/UNMAP 지원이 없었지만(SSD 드라이브에는 특수 도구가 사용됨) 플래시 드라이브는 2005년경부터 사용되었으며 Windows XP에서 완전히 지원되었습니다.

USB 대용량 저장 장치로서 USB 위에 SCSI 프로토콜을 사용하고 있었습니다(이 시점에서 제가 맞습니까?). SCSI에는 UNMAP이 있지만 Windows XP에서도 지원되지 않았습니다.

따라서 USB 플래시 드라이브가 일부 블록이 삭제될 수 있음을 알 수 있는 유일한 기회는 OS의 쓰기 요청입니다.

이는 일부 사용 후 전체 드라이브가 더러워지고 항상 느려짐을 의미합니다. 블록을 삭제하라고 지시할 방법은 없습니다. 버리고 새 USB 플래시 드라이브를 구입하면 됩니다.

그러나 나는 이것이 사실이 아니라고 확신합니다. 내가 놓친 게 무엇입니까?

답변1

간단하고 일반적인 대답은 다음과 같습니다. 숨겨진 양의 NAND 셀 덕분입니다.

플래시 드라이브의 컨트롤러는 가비지 컬렉터 메커니즘을 적용하여 쓰기 성능을 유지합니다. 즉, 조각화된 여유 논리 섹터를 모아서 여유 물리적 NAND 블록에 매핑합니다. 가비지 수집기는 OS에 의해 전혀 제어되지 않습니다. 이는 완전히 드라이브 내부에 있는 백그라운드 프로세스입니다(드라이브 전원을 켜면 됩니다).

드라이브에 더 이상 여유 공간이 없으면 분명히 가비지 수집이 더 이상 작동할 수 없습니다(이는 드라이브가 어느 시점에 완전히 채워진 경우에만 발생한다는 점에 유의하세요).

이 문제를 극복하기 위해 대부분의 드라이브에는 숨겨진 양의 NAND 셀이 있습니다. OS 관점에서 드라이브가 "논리적으로 가득 차" 있더라도 "물리적으로 가득 차" 있지 않으며 컨트롤러에 여전히 약간의 공간이 있습니다. 가비지 컬렉션을 적용합니다. https://www.seagate.com/fr/fr/tech-insights/ssd-over-provisioning-benefits-master-ti/

이제 숨겨진 셀 볼륨은 드라이브 범주에 따라 다릅니다. 고급 드라이브는 볼륨이 크고 보급형 드라이브는 볼륨이 최소입니다. 또한 값싼 USB 키에는 숨겨진 셀이 없다고 가정하는 것이 안전하다고 생각합니다.

마찬가지로, 모든 드라이브에 영리한 가비지 수집 메커니즘이 있는 것은 아니며, 일부 드라이브에는 대략적인 메커니즘이 있을 수 있으며, 일부 드라이브(저렴한 USB 키)에는 가비지 수집기가 없을 수도 있습니다.

위에서 작성한 모든 내용은 TRIM 없이도 적용됩니다.

답변2

매우 일반적인 답변을 제공하기에는 플래시 드라이브 기술이 너무 많습니다. 다음은 대부분의 플래시 드라이브가 시간이 지남에 따라 성능이 저하되는 하드웨어를 사용하여 저렴하게 제조된다는 점을 염두에 두고 몇 가지 조언입니다.

  • ATA 보안 삭제 일부 드라이브에서는 TRIM의 대안이 됩니다. 기사에서 USB 플래시 쓰기 속도를 다시 빠르게 설정 저자는 이를 사용하여 64GB SanDisk Extreme USB 플래시 드라이브의 쓰기 성능을 81.7MB/S에서 149.7MB/S로 높였습니다.

  • 디스크의 약한 섹터는 형식("느림" - 빠르지 않음)으로 개선될 수 있습니다.

  • NTFS 형식은 FAT32 및 exFAT보다 효율적일 수 있습니다. 예를 들어 기사를 참조하십시오. FAT32 vs. exFAT vs. NTFS USB3 성능 비교.

  • 장치 관리자에서 USB를 "빠른 제거" 대신 "더 나은 성능"으로 설정하면 Windows가 데이터를 더 효과적으로 캐시할 수 있지만 쓰기 후에는 항상 드라이브를 꺼내야 한다는 것을 기억해야 합니다.

  • 장치 및/또는 USB 컨트롤러용 드라이버를 업데이트하십시오.

  • 자주 사용하는 USB 포트는 시간이 지남에 따라 성능이 저하될 수 있으므로 케이스의 전면 포트와 후면 포트를 바꿔가며 다른 포트를 사용해 보세요.

답변3

일부 USB3.x 드라이브지원 트림. Windows에서 이를 사용할 수 있는지는 확실하지 않습니다. Linux에서는 사용할 수 있습니다.보기에UASP(USB Attached SCSI) 프로토콜을 사용하는 경우 Windows 8+에서 트림이 작동할 수 있습니다.

Q의 핵심(트림 없이 어떻게 이 작업을 수행할 수 있습니까?): FAT32를 이해한다는 점에서 특별한 트릭을 사용하는 일부 USB2 컨트롤러를 알고 있습니다. 그래서 그들은 FAT를 관찰하여 해당 파일 시스템에서 트림을 에뮬레이션하는 방법을 알고 있었지만 NTFS나 일부 Linux 파일 시스템에서는 그렇지 않았습니다. 쓰기가 용량을 초과한 후 FAT32 이외의 다른 드라이브를 사용하면 이러한 드라이브에 상당한 성능 저하가 발생했습니다. 전형적인 수정~였다FAT32에서 적어도 한 번은 다시 포맷해야 합니다. 이것은 본질적으로 전체 트림과 동일했습니다.

아쉽게도 일부 컨트롤러가 FAT32를 이해한다는 내 주장에 대한 참고 자료가 없지만 IIRC에서는 중국 칩 제조업체(아마도 Yeestor)의 프레젠테이션을 보았습니다.

관련 정보