SSD를 오래 사용하다 보면 처음에는 빠르던 컴퓨터가 어느 순간부터 파일 복사나 프로그램 실행에서 답답하게 느껴지는 경우가 있다. 특히 SSD의 남은 용량이 거의 없을 때 이런 현상이 두드러진다. 단순히 저장 공간이 부족해서 느려지는 것처럼 보이지만 실제로는 SSD가 데이터를 저장하고 관리하는 방식과 깊은 관련이 있다. SSD는 왜 용량이 꽉 찰수록 속도가 떨어지는 것일까?
SSD는 HDD처럼 회전하는 디스크에 데이터를 기록하는 장치가 아니다. NAND 플래시 메모리라는 반도체에 데이터를 저장한다. 문제는 NAND 플래시가 기존 데이터 위에 바로 새로운 데이터를 덮어쓸 수 없다는 점이다. 데이터를 수정하려면 먼저 기존 데이터가 들어 있는 영역을 지운 뒤 다시 기록해야 한다. 이 과정에서 SSD 내부적으로 여러 번의 데이터 이동과 정리 작업이 발생한다.
SSD에 빈 공간이 충분할 때는 문제가 크지 않다. 컨트롤러가 비어 있는 메모리 셀을 찾아 바로 데이터를 기록할 수 있기 때문이다. 하지만 SSD 사용량이 90% 이상으로 올라가고 빈 공간이 줄어들면 상황이 달라진다. 새로운 데이터를 저장하기 위해 기존 데이터를 다른 위치로 이동시키고, 사용하지 않는 데이터를 정리한 뒤 공간을 확보해야 한다. 단순한 한 번의 쓰기 작업이 여러 번의 읽기와 쓰기로 늘어나는 것이다.
이 현상과 관련된 대표적인 개념이 가비지 컬렉션이다. SSD 내부에는 운영체제에서 삭제된 파일이라도 실제 NAND 메모리에는 데이터가 남아 있는 경우가 있다. SSD 컨트롤러는 사용 중인 데이터와 필요 없는 데이터를 구분한 뒤 필요한 데이터만 다른 영역으로 옮기고 기존 블록을 지워 새로운 저장 공간을 만든다. 빈 공간이 충분하면 이런 작업을 여유롭게 처리할 수 있지만 SSD가 거의 가득 차면 데이터를 옮길 공간 자체가 부족해지면서 가비지 컬렉션 작업이 더 자주 발생한다.
TRIM 기능도 SSD 성능과 관련이 있다. 사용자가 파일을 삭제하면 운영체제는 TRIM 명령을 통해 SSD에 해당 데이터가 더 이상 필요하지 않다는 정보를 전달한다. SSD는 이를 참고해 나중에 해당 영역을 정리한다. 하지만 여유 공간이 거의 없다면 TRIM으로 확보할 수 있는 영역도 제한되고 SSD 내부 데이터 관리가 복잡해질 수 있다.
쓰기 증폭 역시 중요한 원인이다. 사용자가 실제로 1GB의 데이터를 저장했더라도 SSD 내부에서는 데이터 이동과 블록 정리 때문에 1GB보다 훨씬 많은 양의 데이터를 기록할 수 있다. 이를 쓰기 증폭이라고 한다. SSD 용량이 가득 찰수록 쓰기 증폭이 커질 가능성이 높고, 그만큼 쓰기 속도도 떨어질 수 있다. 장기적으로는 NAND 플래시의 수명에도 영향을 줄 수 있다.
SSD에는 속도를 높이기 위해 SLC 캐시를 사용하는 제품이 많다. TLC나 QLC 방식의 SSD라도 일부 영역을 SLC처럼 동작하게 만들어 데이터를 먼저 빠르게 저장하고 이후 실제 TLC 또는 QLC 영역으로 옮기는 방식이다. 그런데 상당수 SSD는 남은 여유 공간을 이용해 동적 SLC 캐시를 만든다. SSD 용량이 많이 남아 있을 때는 캐시 공간을 넉넉하게 확보할 수 있지만 용량이 거의 꽉 차면 SLC 캐시 크기도 줄어든다.
이 때문에 대용량 파일을 복사하거나 게임을 설치할 때 처음에는 초당 수백 MB 또는 수 GB의 속도가 나오다가 갑자기 속도가 크게 떨어질 수 있다. 특히 DRAM이 없는 보급형 QLC SSD는 이런 현상이 더 눈에 띄는 경우가 있다. 저장 공간 부족과 캐시 부족이 동시에 발생하면 쓰기 성능이 크게 감소할 수 있기 때문이다.
SSD 내부의 웨어 레벨링도 영향을 받는다. NAND 플래시 메모리는 셀마다 쓰기 가능한 횟수가 제한되어 있기 때문에 SSD 컨트롤러는 특정 셀만 계속 사용하지 않고 전체 셀을 최대한 균등하게 사용하도록 데이터를 분산한다. 이를 웨어 레벨링이라고 한다. 여유 공간이 충분하면 컨트롤러가 데이터를 자유롭게 배치할 수 있지만 빈 공간이 부족하면 선택할 수 있는 영역이 줄어들어 관리 효율이 떨어진다.
운영체제 역시 SSD의 빈 공간을 사용한다. 윈도우는 가상 메모리, 업데이트 파일, 임시 파일, 브라우저 캐시, 프로그램 설치 파일 등을 저장 공간에 기록한다. SSD가 거의 가득 차면 이런 임시 공간을 확보하기 어려워지고 운영체제 자체의 성능이 떨어질 수 있다. 따라서 SSD 속도 저하는 SSD 하드웨어 자체의 문제뿐 아니라 운영체제가 사용할 작업 공간 부족 때문에 발생하기도 한다.
그렇다면 SSD에는 어느 정도의 여유 공간을 남겨두는 것이 좋을까? 일반적으로 전체 용량의 약 10~20% 정도를 비워두면 안정적인 성능 유지에 도움이 된다. 예를 들어 1TB SSD라면 가능하면 약 100~200GB 정도의 여유 공간을 유지하는 것이다. 반드시 정확히 20%를 비워야 하는 것은 아니지만 남은 공간이 몇 GB 수준까지 줄어드는 상황은 피하는 것이 좋다.
용량 부족 때문에 SSD 속도가 느려졌다면 사용하지 않는 게임과 프로그램을 삭제하고 다운로드 폴더나 임시 파일을 정리하는 것이 도움이 된다. 사진이나 영상처럼 자주 사용하지 않는 대용량 파일은 다른 SSD나 외장하드, NAS, 클라우드 저장소로 옮길 수도 있다. 윈도우의 저장 공간 정리 기능을 이용해 임시 파일과 업데이트 찌꺼기를 제거하는 것도 좋은 방법이다.
결국 SSD는 단순히 데이터를 담는 창고가 아니라 내부에서 끊임없이 데이터를 이동하고 정리하면서 동작하는 저장장치다. 빈 공간은 단순한 남는 용량이 아니라 SSD 컨트롤러가 데이터를 효율적으로 관리하기 위한 작업 공간의 역할도 한다. SSD가 거의 꽉 차면 가비지 컬렉션, 쓰기 증폭, SLC 캐시 감소, 웨어 레벨링 효율 저하 등이 동시에 발생하면서 속도가 떨어질 수 있다. SSD의 빠른 성능을 오래 유지하고 싶다면 저장 공간을 끝까지 채우기보다 일정한 여유 공간을 남겨두는 것이 가장 간단하면서도 효과적인 관리 방법이다.