SSD 조각 모음을 수행해야합니까?


121

방금 "SSD 조각 모음을 수행해서는 안된다"는 것을 알게되었습니다. 그러나 그것이 사실인지 전혀 모른다.

SSD에서 조각 모음을 완료하기 위해 Windows 10이 자동으로 예약되었다고 생각하지만 취소했습니다. 이전에 수행 된 조각 모음에 문제가 있습니까?

SSD는 여전히 시스템 하드웨어 관리자에서만 내 컴퓨터 폴더에 SSD 드라이브를 볼 수 없기 때문에 분할되지 않았습니다. SSD (Windows는 첫 번째 SSD)에 Windows를 설치하기 위해 수행해야하는 올바른 단계는 무엇입니까?


12
"SSD 조각 모음을하지 마십시오"라는 조언은 더 이상 사용되지 않으며 SSD가 속도가 느리고 현대 SSD보다 쓰기 내구성이 훨씬 제한적인 시간에서 비롯됩니다. 최신 SSD는 IOPS가 제한되는 경향이 있으며 조각 모음 된 파일 시스템에는 더 적은 I / O가 필요합니다.
David Schwartz

5
@DavidSchwartz에 따르면 현대 SSD를 자발적으로 죽이는 데 필요한 쓰기 / 삭제 양은 엄청나게 높습니다. 특별한 양의 정보를 처리하지 않는 한 SSD는 일반적인 조각 모음을 수행하더라도 다른 많은 구성 요소보다 오래 지속될 가능성이 높습니다.
DanK

29
왜 SSD 조각 모음을 원하십니까? 조각 모음의 요점은 파일을 디스크에서 연속적으로 만드는 것이므로 읽기 헤드는 파일을 읽기 위해 물리적으로 이동하는 데 시간이 걸리는 곳을 찾아야 할 필요가 없습니다. 나는 전문가는 아니지만 AFAIK SSD는 솔리드 스테이트 및 랜덤 액세스입니다. 모든 액세스는 같은 시간이 걸리므로 파일 블록이 어떻게 배포되는지는 중요하지 않습니다.
jamesqf


6
Ajedi32가 지적했듯이 두 질문에 대한 권장 사항은 완전히 반대입니다. 이는 복제 방향에 영향을 미칩니다. 다른 질문에 대한 권장 사항이 이제 잘못된 것으로 간주되는 경우 독자가이 질문에 대한 답변을 찾을 수있는 유일한 방법은 해당 질문에 대한 답변이 중복 된 경우입니다.
fixer1234

답변:


135

Windows가 그 일을하도록하십시오. 한 달에 한 번은 내부 메타 데이터를 최적화하기 위해 SSD에서도 실제 전체 조각 모음을 수행 합니다.

짧은 대답은 그렇습니다. Windows는 때때로 SSD 조각 모음을 수행합니다. 그렇습니다. SSD를 지능적이고 적절하게 조각 모음하는 것이 중요하며 Windows는 SSD를 처리하는 방법에 대해 똑똑합니다.

다음은 Microsoft의 답변입니다.

볼륨 스냅 샷이 활성화 된 경우 Storage Optimizer는 한 달에 한 번 SSD 조각 모음을 수행합니다. 이것은 의도적으로 설계된 것으로 조각난 SSD 볼륨에서 쓰기시 볼륨 스냅 샷 복사가 느리기 때문에 필요 합니다. 또한 SSD에서 조각화가 문제가 아니라는 오해입니다. SSD가 너무 조각화되면 최대 파일 조각화 (메타 데이터가 더 이상 파일 조각을 나타낼 수없는 경우)에 도달하여 파일을 쓰거나 확장하려고 할 때 오류가 발생합니다. 또한 파일 조각이 많을수록 파일을 읽거나 쓰는 동안 처리 할 메타 데이터가 많아 져 성능이 저하 될 수 있습니다.

Retrim과 관련하여이 명령은 dfrgui UI에 지정된 일정에 따라 실행해야합니다. 파일 시스템에서 TRIM이 처리되는 방식으로 인해 재검색이 필요합니다. TRIM에 응답하는 다양한 하드웨어 성능으로 인해 TRIM은 파일 시스템에서 비동기 적으로 처리됩니다. 파일이 삭제되거나 공간이 확보되면 파일 시스템은 처리를 위해 트림 요청을 큐에 넣습니다. 픽 리소스 사용을 제한하기 위해이 큐는 최대 트림 요청 수로 만 증가 할 수 있습니다. 큐가 최대 크기 인 경우 들어오는 TRIM 요청이 삭제 될 수 있습니다. Storage Optimizer를 정기적으로 방문하여 Retrim을 수행하기 때문에 괜찮습니다. Retrim은 TRIM이 삭제되는 최대 TRIM 요청 큐 크기에 도달하지 않도록 세분화되어 수행됩니다.

따라서 SSD에 Windows를 설치하고 잊어 버리십시오. Windows는 모든 것을 자체적으로 수행합니다.


17
때때로 우리는 Microsoft가 너무 어리 석고 모든 것에 대해 불평합니다. 그러나 때로는 일부 Windows 요소가 얼마나 잘 생각되었는지에 놀랐습니다.
BlueWizard

1
그러나 AFAIK Linux / EXT는이를 수행 할 필요가 없습니다.
spraff

6
조각화는 EXT에서 최소로 유지되지만 최소한 Ext3에서는 특정 사용 사례에서 계속 발생할 수 있습니다. en.wikipedia.org/wiki/Ext3#Disadvantages
Bret

6
EXT 변형은 조각화되어 성능이 저하됩니다. 달리 말하는 사람은 누구나 리눅스 우월성을 거짓말하는 것입니다. 출처 : 나는 그것을 위해 드라이버를 구현했지만 그렇게합니다.
imallett

1
@spraff는 EXT가 블록 사이에 공백을 남기고 파일이 커질 때 다른 곳에서 파일을 쓸 필요가 없기 때문입니다. 그것이 자랄 때. 기본적으로 비디오 파일 (확장되지 않음)이 있으면 여전히 필요한 것보다 더 많은 공간이 필요하므로 공간이 낭비됩니다. 어떤 시스템이 완벽하지
BlueWizard

50

방금 "SSD 조각 모음을 수행해서는 안된다"는 것을 알게되었습니다. 그러나 그것이 사실인지 전혀 모른다.

약간의 지식은 위험합니다. 시스템에 SSD가 무엇인지 전혀 모르는 경우 SSD를 조각 모음하지 않는 것이 좋습니다 . 그리고 SSD가 깨지기 쉬운 눈송이라면 정상적인 사용의 거친 열에서 마모되고 녹을 수 있습니다. 이것이 사실이 아닌 이유에 대한 자세한 답변이 있습니다 . 정상적인 사용법으로 드라이브를 '마모'시키는 것은 매우 어렵 습니다. 이것을 배우는 것이 편리 할 수 ​​있습니다.

Spotify처럼 애플리케이션이 SSD를 죽이거나 대량의 쓰기 작업을 수행하는 경우 사람들이 뒤집어 질 수 있다는 점을 고려하십시오. 그리고 종종 OS를 쓰는 사람들은 똑똑합니다.

이 답변의 나머지 부분에 대해 Scott Hanselman 의이 블로그 게시물 을 크게 참조 하고 있습니다. Magicandre의 답변도 이것을 언급하지만, 나는 다른 교훈을 얻었습니다. 자세한 내용은 읽을 가치가 있습니다. 나는 정보를 표현하는 방법에 대해 약간의 자유를 얻고 있습니다. 나는 이것으로 시작할 것이다

가장 큰 오해는 대부분의 사람들이 매우 오래된 디스크 / 파일 레이아웃 모델과 SSD의 작동 방식을 가지고 있다는 것입니다.

SSD는 조각화를 수행하므로 이러한 조각을 추적 해야합니다 . 기본적인 수준에서 SSD 조각 모음 은 회전하는 녹 드라이브와 방법이 다르더라도 파일 시스템 을 효율적으로 실행 하는 데 도움 이됩니다. 내가 언급 한 게시물은 조각 모음없이 볼륨 스냅 샷이 느려질 것이라고 지적했습니다.

SSD는 또한 TRIM이라는 개념을 가지고 있습니다. TRIM (retrim)은 조각화와는 별개의 개념이지만 여전히 Windows Storage Optimizer 하위 시스템에서 처리되며 일정은 사용자 관점에서 동일한 UI로 관리됩니다.

TRIM이 좋습니다. 트림 블록을 지우지 않고 읽은 것으로 표시하고 필요에 따라 지우는 메커니즘이기 때문에 쓰기를 절약 합니다.

드라이브 조각 모음을 절대하지 말라고 말한 사람은 최신 OS가 SSD 용 으로 설계되었으며 필요한 하우스 키핑 프로세스가 시작되었다는 것을 모릅니다 .

당신이 더 잘 알고 있다고 생각하는 동안,이 경우 OS를 작성한 사람들이 당신을 위해 최적화했습니다. 차분하게 유지하고 Windows에서 드라이브 조각 모음을 수행하십시오.


8
논리적 블록 주소와 물리적 블록 주소를 언급하면이 답변이 크게 향상 될 것이라고 생각합니다. SSD를 조각 모음 할 수는 없습니다. 순차 논리 주소를 생성하는 파일 시스템 수준 프로시 저는 플래시 매핑으로 인해 실제 디스크 주위에 데이터가 여전히 흩어져 있으며 SSD는 랜덤 액세스이기 때문에 괜찮습니다.
벤 Voigt

솔직히 말해서, 나는 여전히 내 머리를 감싸지 않은 개념입니다. 나는 그에 대한 완전한 치료가 내 질문 중 하나에 대한 훌륭한 답변을 줄 것이라고 믿으며 테스트 계정에 일부 담당자가 떠 다니고 있습니다.
Journeyman Geek

22

완전성을 위해 :

조각화 는 디스크 나 OS가 아닌 파일 시스템 (FS) 에 따라 다릅니다 .

이것은 귀하의 질문에 대한 답변이 실제로 Windows *를 요구할 필요는 없다는 것을 의미합니다. SSD는 특수한 경우이며 일반 디스크와 다르게 작동합니다.

FS는 디스크에서 파일을 구성하는 방법입니다. 가장 일반적인 Windows 형식은 NTFSFAT32입니다. 리눅스에서 가장 일반적으로 사용되는 금융 감독원은 ext3/ ext4하지만, 많은 사람들이 (가 zfs, xfs, jfs, ReiserFS, btrfs, 등).

디스크는 블록 으로 나뉩니다 . 데이터를 쓸 수있는 긴 테이프라고 생각할 수 있습니다. 디스크에 무언가를 쓸 때이 블록을 사용합니다. 분명히 관련 파일을 서로 옆에 쓰고 단일 파일을 단일 블록에 쓰길 원하므로 테이프를 뛰어 넘을 필요가 없습니다. 사물이 모두 흩어지면 조각화 라고 부릅니다 . 조각 모음이 구성됩니다.

분명히 당신이 사물을 어떻게 구성 하는가 (FS)가 그것들이 얼마나 잘 조직되어 있는지 (단편화가 있는지)를 결정합니다. 처음부터 파일을 정리하면 조각화가 발생하지 않습니다. 이것이 일부 파일 시스템 (예 : ext패밀리) 에서 일어나는 일입니다 . 이러한 파일 시스템은 파일을 작성하기 전에 즉석에서 정리하므로 다른 선택이없는 경우 외에는 작은 장애가 발생할 경우를 제외하고는 파일을 조각 모음 할 필요가 없습니다.

ext4조각화를 방지하는 방법 에 대한 자세한 내용은 이 페이지를 참조하십시오.

이제 SSD는 다르게 작동합니다. 테이프가 아닙니다. 어디서나 즉시 액세스 할 수 있습니다. 조각 모음의 요점은 파일을 깔끔하게 정리하여 이동할 필요가 없다는 것입니다. SSD를 뛰어 넘을 방법이 없습니다. 테이프의 다른 쪽 끝을 앞뒤로 가져와야하는지 상관하지 않습니다. 테이프가 없습니다.

그러나 SSD를 최적화하는 다른 방법이 있습니다. 설명을 위해이 주제 를 참조하십시오 .

*거의; 파일 시스템 선택은 OS와 관련이 있습니다. 대부분의 Linux 사용자는 Windows 또는 OS X 사용자와 다른 FS를 사용합니다.


3
정확히 이것입니다. 조각화는 저장 매체에 관계없이 FS 수준에서 발생합니다. 일부 미디어는 다른 미디어보다 더 많은 영향을 받지만 항상 약간의 영향이 있으며 SSD가 있어도 사라지지 않습니다.
Dmitry Grigoryev

1
주요 차이점은 실제로 Ext3과 FAT와 Ext4 및 NTFS입니다. 그러나 응용 프로그램, OS 및 하드웨어조차도 크게 기여 합니다. Windows는 시작시 사용되는 파일을 사용 된 순서대로 구성합니다. 예를 들어 대부분의 시작시 탐색 대신 블록 읽기를 사용할 수 있습니다. 이 조각 모음을 호출 할 수 있습니다. FS 수준에서 조각 모음을 수행하는 것 (파일 조각화를 줄이는 것)뿐만 아니라 파일 그룹을 "조각 모음"하여 FS가 실제로 도울 수없는 방식으로 액세스를 최적화합니다. DLL을 EXE에 가깝게 옮기는 것과 같은 많은 유사한 최적화를 상상할 수 있습니다.
Luaan

모두 고유 한 방식으로 중요한 여러 계층이 있습니다. 예를 들어 스트라이핑은 성능을 향상시킬 수있는 의도적 인 조각화 방법입니다. HDD에 여러 개의 플래터에서 동시에 읽을 수있는 여러 헤드가있는 경우 HDD의 물리적 구성에서도이 기능을 사용할 수 있습니다. SSD는 플래터를 돌리고 머리를 움직일 필요는 없지만 여전히 IOPS 제한이 있습니다. 오늘날 SSD 속도로 인해 이는 원시 대역폭보다 더 중요합니다. SSD 탐색은 더 이상 대역폭을 포화시킬만큼 빠르지 않습니다. 조각화는 근본적인 문제인 캐싱의 작은 부분입니다.
Luaan

@Luaan : "SSD 찾기"와 같은 것은 없습니다. 실제로 명령 당 처리 오버 헤드에 대해 이야기하고 있다고 생각합니다.
벤 Voigt

1
@BenVoigt Luaan은 통합되지 않은 파일이 SSD에서도 읽기 시간이 더 오래 걸린다는 것을 의미한다고 생각합니다. 탐색 지연은 없지만 SSD의 순차 읽기와 임의 읽기 사이에는 큰 차이가 있습니다.
user1306322

7

기존의 대답은 중대하다,하지만 몇 가지 ... 그들을 보충해야
내가 조각 모음을 내 SSD 및 자동 TRIM을 해제 하지만 언급 한 것보다 완전히 다른 이유 :

  1. 실수로 무언가를 삭제하면 파일 이나 파티션 을 복구 할 수 있기를 원합니다 .
    아니요, 자주 발생하지는 않지만 몇 번 발생 하면 삭제 후 즉시 복구하려고 할 때 하드 드라이브에서 복구 할 수 있었던 것을 복구 할 수 없다는 것이 매우 실망 스럽습니다. .

  2. 나는 , 확대 축소, 심지어 파티션을 이동 몇 개월마다 주위에, 그리고 조각 모음 및 파일을 통합하는 것은 훨씬 더 빠르고 덜 위험이 작업을합니다. 요즘 파티션 관리자를 신뢰할 수 있다고 생각하지만 2015 년 12 월 말에 일반 이동 / 크기 조정 작업에서 오류 (손상)가 발생했습니다. 더 똑똑한 파티션 관리자는 손상이 발생하기 전에 (그리고 항상 그렇지는 않지만) 성공하기 전에 크게 조각난 볼륨에서 실행을 피하려고합니다.

  3. 나는 때때로 리눅스를 사용 하는데, 1 년 전쯤에 NTFS 볼륨이 손상되어 화상을 입었다. 이것은 특히 조각화 때문이 아니라 조각화되지 않은 파일을 제대로 처리 할 수 ​​없다는 것을 알기 때문에 방어 적이며 가능한 한 볼륨을 깨끗하게 제시하려고합니다 (그리고 심지어는 쓰기를 피합니다) 시간의).

# 2와 # 3에 대한 슬픈 부분은, 자신의 눈으로 이러한 문제를 보지 못한 사람들은 항상 내가 너트라고 생각 하고이 모든 것을 만들고 있거나 내 시스템이 어떻게 든 파괴되어야한다는 것입니다. 하지만 여러 시스템에이 꽤 몇 번 재현 한, 그의 쓴 사람으로 자신의 NTFS는 중앙에있는로 ... NTFS 독자를, 내가 일 또는 파일 시스템과 커널 프로그래밍에 대한 두 가지를 알고있다. 그래서 나는 내가 볼 때 버그를 안다. 아무도 나를 믿지 않지만 어쨌든 사람들에게 경고합니다. 이것이 내 눈으로 일어나는 것을 보았 기 때문에 파티션을 엉망으로 만들거나 Linux를 전혀 사용하지 않으면 드라이브 조각 모음을 유지하는 것이 좋습니다. YMMV.

아, 아무것도 복구 할 필요 가없는 경우 가끔씩 수동으로 TRIM을 수동으로 실행하는 것을 잊지 마십시오 . 내가 정직하다면 아직 혜택을 보지 못했습니다 ...


1
우수한 이유는 특히 사진과 같은 이유로 플래시 드라이브를 조각 모음 (및 "제로")하는 것이 좋습니다. 연속적인 파일은 부분적으로 복구하기가 더 쉽습니다. OS가 충분히 영리한 경우 시간을 제쳐두고 프리 페치 (미리 읽기)의 이점을 누리십시오. SSD는 메모리보다 느린 경향이 있습니다 (항상 그렇지는 않음).
mckenzm

리눅스가 실제로 "리눅스를 사용한다면"이 아니라 "리눅스를 사용하고 NTFS 파일 시스템을 읽고 쓰는 경우"가 아닌가? SSD에서 ext4 또는 XFS와 함께 Linux를 사용하면 완벽하게 안전합니다. (그리고 그 문제에 대해서는 FAT이므로 필요한 경우 데이터 교환을 위해 FAT 파티션을 만들 수 있습니다.)
mattdm

@ mattdm : 예, 추측합니다. (위 어드, 나는 이것에 대해 이미 답장을했다고 생각했다 ...)
Mehrdad

0

ssd 조각 모음을 수행 할 수 있습니다. 당신은해야합니까? 확실히 자주는 아니지만 드물게하는 것이 유익 할 수있는 몇 가지 경우가 있습니다.

a) 오래된 파일의 느린 읽기 버그에 영향을받는 Samsung Evo 840이 있습니다. 조각 모음은 효과적으로 다시 작성하며 더 이상 오래된 파일이 아닙니다.

b) SSD에 대한 조각화의 영향은 극히 적지 만 컨트롤러는 여전히 많은 플래시 칩에 분산 된 파일을 다시 어셈블해야합니다. 이로 인한 성능 영향은 매우 작지만 다시 조각 모음을 수행하면 파일을 재구성하고 컨트롤러를 쉽게 재 조립해야합니다.

c) 현대 ssd에 가까운 것이 있으면 가끔 조각 모음이 수명에 영향을 미치지 않습니다. 2018 년 한 hw 기술 사이트에서 ssd 지구력 테스트를 수행했으며 2d tlc (매우 나쁜 지구력을 가짐)를 사용하는 삼성 evo 840 500GB는 약 600TB의 쓰기에서 실패했습니다. 더 좋은 것은 지구력이 훨씬 더 높은 3d tlc (일부 회사에서는 vnand라고 함)를 사용하는 것입니다. 더 큰 모델에는 더 많은 셀을 쓸 수있어 내구성이 더욱 향상됩니다. 그리고 당신이 큰 프로 드라이브 내구성을 가진다면 완전한 비 이슈입니다 (삼성 프로 512GB가 9 PB의 쓰기를 지속하기 전에 언급 한 테스트에서 ... 더 크거나 새로운 모델은 더 오래 지속되어야합니다). 이 숫자는 의도적으로 시도하지 않으면 실제로 도달 할 수 없습니다. 살인에 쓰인 글 (어쨌든 싼 글,


-3

SSD 조각 모음은 가장 낮은 주소의 메모리 블록의 조기 장애를 촉진합니다.

참조 : http://techreport.com/review/27909/the-ssd-endurance-experiment-theyre-all-dead

"플래시 전체에 쓰기를 균등하게 분산시키는웨어 레벨링 알고리즘을 사용하더라도 모든 셀이 결국 고장 나거나 업무에 적합하지 않게됩니다.이 경우 SSD가 초과 프로비저닝 된 영역에서 할당 된 플래시로 교체되고 교체됩니다.이 예비 NAND는 드라이브의 사용자 액세스 가능 용량은 셀을 손상시키는 마모의 전쟁에 영향을받지 않습니다. "

"피해자는 결국 드라이브의 보상 능력을 능가하여 답을 얻지 못한 질문을 남깁니다. 얼마나 많은 쓰기 작업이 필요합니까? 결국 데이터에 어떤 일이 발생합니까?


5
드라이브에 많은 양의 데이터가 기록되고 덮어 쓰기 되는 극단적 인 경우입니다. 이것은 정기적 인 일상적인 조각 모음과 어떤 관련이 있습니까?
Journeyman Geek

아닙니다. 극단적 인 경우는 아닙니다 ... 제품의 본질적인 또는 최종적인 약점을 보여주는 테스트입니다. 테스트는 한계를 나타내도록 설계되었습니다.
jwzumwalt

-6

SSD의 각 셀은 다시 쓸 때마다 느려집니다. 디스크는 어떤 셀에 기록했는지 추적하고 적은 사용 된 셀에 먼저 기록하여 마모를 숨 깁니다. 조각 모음은 많은 셀에서 대량으로 다시 쓰는 것을 의미하므로 SSD가 마모됩니다. HD는 조각 모음의 이점을 얻습니다. 서보 암을 자주 움직이지 않아도 성능이 향상 되기는하지만 데이터의 임의 배치로 인해 SSD 속도가 느려지지는 않습니다.


10
공감하지는 않았지만 이에 대한 소스를 보는 데 관심이 있습니다.
brichins

3
쓰기 증폭마모 레벨링을 혼동하고 있습니다. SSD는 쓰기 전에 삭제해야하지만 쓰기 가능한 것보다 큰 블록을 삭제합니다. 이는 단일 쓰기가 여러 번 쓰기를 수행하여 데이터를 뒤섞 고 블록을 비워서 지울 수 있음을 의미합니다. 더 많은 쓰기가 수행 될수록이 프로세스는 더 복잡해집니다. 그것은 쓰기 증폭입니다. TRIM 및 초과 프로비저닝과 같은 여러 가지 방법으로이를 처리 할 수 ​​있습니다. 착용 레벨링은 어떤 셀에 쓰이는지를 알리므로 완전히 실패하지 않습니다.
Schwern
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.