하드 드라이브를 다시 포맷하려는 경우 나중에 쓰기 성능을 '향상'시킬 수있는 것이 있습니까? 아니면 걱정할 필요가없는 것이 있습니까? 오늘의 수퍼 유저 Q & A 게시물에는 호기심 많은 독자의 질문에 대한 답변이 있습니다.
오늘의 질문 및 답변 세션은 커뮤니티 중심의 Q & A 웹 사이트 그룹 인 Stack Exchange의 하위 부문 인 SuperUser가 제공 한 것입니다.
사진 제공 : 크리스 배니스터 (플리커) .
질문
수퍼 유저 독자 인 Brettetete는 하드 드라이브에 0을 채우면 쓰기 성능이 향상되는지 알고 싶어합니다.
99 % 가득 찬 2TB 하드 드라이브가 있습니다. 나는 파티션을 삭제했습니다 fdisk 다음과 같이 형식화했습니다. ext4 . 내가 아는 한 하드 드라이브에 있던 실제 데이터는 여전히 존재하지만 파티션 테이블은 재 할당되었습니다.
내 질문은 : 하드 드라이브가 깨끗한 경우 추가 쓰기 작업에 대한 쓰기 성능을 향상시킬 수 있습니까? 'clean'이란 하드 드라이브를 0으로 채우는 것을 의미합니까? 다음과 같은 것 :
- dd if = / dev / zero of = / dev / sdx bs = 1 count = 4503599627370496
하드 드라이브를 0으로 채우면 쓰기 성능이 향상됩니까?
대답
수퍼 유저 기고자 인 Michael Kjörling이 우리에게 답을줍니다.
아니요, 성능이 향상되지는 않습니다. HDD는 그렇게 작동하지 않습니다.
첫째, 주어진 데이터를 회전 드라이브에 쓰면 변형 으로 자기 영역 실제로 작성중인 비트 패턴과 매우 다르게 보일 수 있습니다. 이는 플래터에서 다시 읽어 온 패턴이 일정량의 가변성을 가질 때 동기화를 유지하는 것이 훨씬 쉽기 때문에 부분적으로 수행됩니다. 예를 들어 '0'또는 '1'값의 긴 문자열은 동기화를 유지하기 매우 어렵게 만듭니다. 26,393 비트 또는 26,394 비트를 읽었습니까? 비트 사이의 경계를 어떻게 인식합니까?
이를 수행하는 기술은 시간이 지남에 따라 발전했습니다. 예를 들어 수정 된 주파수 변조 , MMFM, 그룹 코드 기록 , 그리고보다 일반적인 기술 실행 길이 제한 인코딩 .
둘째, 새로운 데이터를 섹터에 쓸 때 플래터의 관련 부분의 자기 도메인이 원하는 값으로 간단히 설정됩니다. 이것은 특정 물리적 위치에서 이전의 자기 영역이 무엇이 었는지에 관계없이 수행됩니다. 플래터는 이미 쓰기 헤드 아래에서 회전하고 있습니다. 먼저 현재 값을 읽은 다음 다른 경우에만 새 값을 씁니다. 각 쓰기 작업에 두 번의 회전 (또는 각 플래터에 대한 추가 헤드)이 필요하여 쓰기 대기 시간이 두 배로 증가하거나 드라이브의 복잡성이 크게 증가하여 비용이 증가합니다.
하드 드라이브 순차 I / O 성능의 제한 요소는 각 비트가 읽기 / 쓰기 헤드 아래를 통과하는 속도이므로 사용자에게 어떠한 이점도 제공하지 않습니다. 제쳐두고, 랜덤 I / O 성능의 제한 요소는 읽기 / 쓰기 헤드를 원하는 실린더에 배치 한 다음 원하는 섹터가 헤드 아래에 도달하는 속도입니다. SSD가 임의 I / O 워크로드에서 그렇게 빠를 수있는 주된 이유는 이러한 요소를 모두 완전히 제거하기 때문입니다.
지적했듯이 JakeGould , 당신이 원하는 한 가지 이유 덮어 쓰다 고정 된 패턴 (예 : 모두 0)을 가진 드라이브는 이전에 저장된 데이터의 잔여 물이 회복 된 , 또는 신중히 또는 우연히. 그러나 이렇게해도 위에서 언급 한 이유 때문에 앞으로의 하드 드라이브 성능에는 영향을 미치지 않습니다.
설명에 추가 할 것이 있습니까? 댓글에서 소리를 내십시오. 기술에 정통한 다른 Stack Exchange 사용자의 답변을 더 읽고 싶으신가요? 여기에서 전체 토론 스레드를 확인하십시오. .