/ / 솔리드 스테이트 드라이브를 채우면 속도가 느려지는 이유

충전 할 때 솔리드 스테이트 드라이브가 느려지는 이유

ssd-in- 컴퓨터

벤치 마크는 분명합니다. 솔리드 스테이트 드라이브를 채우면 속도가 느려집니다. 솔리드 스테이트 드라이브를 거의 용량으로 채우면 쓰기 성능이 크게 저하됩니다. 그 이유는 SSD와 NAND 플래시 스토리지가 작동하는 방식에 있습니다.

드라이브를 용량까지 채우는 것은 솔리드 스테이트 드라이브로 절대하지 말아야 할 일 중 하나입니다. 거의 가득 찬 솔리드 스테이트 드라이브는 쓰기 작업이 훨씬 느려 컴퓨터 속도가 느려집니다.

빈 블록 및 부분적으로 채워진 블록

솔리드 스테이트 드라이브에 파일을 쓸 때빈 블록을 찾아 채 웁니다. 빈 블록에 쓰는 것이 가장 빠른 쓰기 작업입니다. 그렇기 때문에 새로운 운영 체제 (Windows 7 이상)는 운영 체제에서 파일을 삭제하는 즉시 솔리드 스테이트 드라이브에서 파일 데이터를 자동으로 삭제하는 TRIM 기능을 지원합니다. 이것은 삭제 된 파일의 일부가 하드 드라이브에있는 자기 하드 드라이브와는 다르게 작동합니다.

그들은 솔리드 스테이트 드라이브에 앉아 있지 않습니다.TRIM은 블록이 비워 지도록하여 SSD가 향후 빈 블록에 새 데이터를 빠르게 쓸 수 있도록합니다. 이미 쓴 섹터를 덮어 쓰는 것은 기계 하드 드라이브의 빈 섹터에 쓰는 것만 큼 빠르지 만 솔리드 스테이트 드라이브는 쓰기 전에 블록을 지워야합니다.

NAND 플래시 메모리는 4KB 페이지에 데이터를 기록합니다.256KB 블록 내부. 부분적으로 채워진 블록에 페이지를 추가하려면 솔리드 스테이트 드라이브가 데이터를 다시 쓰기 전에 전체 블록을 지워야합니다.

nand-flash-memory-pages-and-blocks

솔리드 스테이트 드라이브가 가득 차면 더 적고더 적은 수의 빈 블록을 사용할 수 있습니다. 그 자리에는 부분적으로 채워진 블록이 있습니다. 솔리드 스테이트 드라이브는 부분적으로 채워진 블록에 새 데이터를 기록 할뿐만 아니라 기존 데이터를 지울 수 있습니다. 간단한 쓰기 작업 대신 솔리드 스테이트 드라이브는 블록의 값을 캐시로 읽고 새 데이터로 값을 수정 한 다음 다시 써야합니다. 파일을 작성하려면 많은 블록에 쓰는 작업이 포함될 가능성이 있으므로 상당한 추가 지연이 발생할 수 있습니다.

TRIM은 부분적으로 채워진 블록을 통합하지 않습니다.

드라이브를 최대 용량 또는 거의 용량까지 채우면파일을 삭제 한 후 부분적으로 채워진 블록이 많이 생길 수 있습니다. TRIM 명령은 파일이 삭제 될 때 파일 데이터를 제거하도록 솔리드 스테이트 드라이브에 지시합니다. 드라이브가 어떤 종류의 정리 작업을 수행하도록 강요하지 않습니다.

즉, 솔리드 스테이트 드라이브를파일을 삭제하기 전에 용량이 부족하면 부분적으로 채워진 블록이 많이 생길 수 있습니다. 드라이브는 이러한 부분적으로 채워진 블록을 전체 블록으로 통합하여 빈 블록을 해제하지 않습니다. 드라이브는 여전히 부분적으로 채워진 블록으로 가득 차 있으며 쓰기 성능이 저하됩니다.

오버 프로비저닝 및 가비지 수집

소비자가 솔리드 스테이트 드라이브를 채우고 성능이 심각하게 저하되는 것을 방지하기 위해 SSD 제조업체는 이에 대응하기 위해 노력하고 있습니다.

소비자 용 솔리드 스테이트 드라이브는 종종 따로 보관됩니다.총 플래시 저장 용량의 약 7 %를 사용하여 사용자가 사용할 수 없게합니다. 이를 "오버 프로비저닝"이라고합니다. 추가 스토리지 하드웨어가 드라이브에 추가되지만 컴퓨터에서 사용할 수있는 사용 가능한 스토리지로 표시되지 않습니다. 예비 영역은 드라이브가 완전히 꽉 차는 일이 없도록 보장합니다. 쓰기 성능을 안정적으로 유지하는 데 도움이되는 예비 용량이 항상 있습니다.

각 솔리드 스테이트 드라이브의 컨트롤러에는이 문제를 완화하기위한 가비지 수집 알고리즘. 드라이브가 가득 차면 부분적으로 채워진 블록을 찾아 통합을 시작하여 가능한 한 많은 빈 블록을 확보합니다. 서로 다른 솔리드 스테이트 드라이브는 드라이브의 컨트롤러에 따라 다른 시간과 임계 값에서 이러한 작업을 실행합니다.

벤치 마크 증거

Anandtech는 다음과 함께 다양한 벤치 마크를 수행했습니다.솔리드 스테이트 드라이브의 예비 영역과 쓰기 작업 성능의 일관성 사이의 관계를 알아 내기 위해 서로 다른 드라이브를 사용합니다. 빈 드라이브를 채울 때 프로세스 초반에 높은 쓰기 성능을 발견했으며 쓰기 작업이 계속해서 드라이브를 채울 때 상당한 저하를 보였습니다.

anandtech-ssd-benchmark

드라이브에 여분의 공간을 더 확보하면 드라이브에 항상 충분한 빈 블록이 준비되어 있어야하므로 성능이 일관되게 유지됩니다.

그들은“최소 성능이이 [소비자] 드라이브에 대해 25 %의 여유 공간을 확보하면 최종 권장 사항은 "성능 일관성과 용량간에 적절한 균형을 유지하려면 [드라이브] 용량의 약 75 % 만 사용하도록 계획"해야한다는 것입니다.


솔리드 스테이트 드라이브가있는 경우 시도해야합니다.용량의 75 % 이상을 사용하지 않도록합니다. 필요한 것보다 더 많은 스토리지가있는 더 큰 드라이브를 구입하면 항상 일관된 쓰기 성능을 유지할 수 있습니다. 운 좋게도 SSD는 점차 훨씬 더 저렴 해지고 있으므로 예전만큼 비싸지는 않습니다.

이미지 크레딧 : Wikimedia Commons의 Music Sorter, Flickr의 Simon Wüllhorst