Linux에서 SSD 조각 모음을 수행하는 방법은 무엇입니까?

Linux에서 SSD 조각 모음을 수행하는 방법은 무엇입니까?

이것페이지조각 모음은 SSD에 유용한 것으로 입증되었습니다. 디스크의 수명을 보존하려면 이러한 유형의 조각 모음을 트림 인식해야 한다고 생각합니다. Linux에서 이 작업을 어떻게 수행할 수 있나요?

편집하다: 이 글의 내용에 문제가 있다는 댓글이 있었습니다.

답변1

일반적으로 조각화를 완전히 무시할 수 있습니다. 이는 HDD만큼 검색 시간의 영향을 받지 않는 SSD의 경우 특히 그렇습니다. SSD 조각 모음은 쓰기 주기만 낭비합니다.

단편화는 무작위 순서로 작성된 희박한 파일(일부 BitTorrent 클라이언트처럼)이나 디스크의 여유 공간이 부족한 경우와 같은 극단적인 경우에 눈에 띄는 영향을 미칠 수 있지만 기록된 마지막 파일은 다른 인접한 공간이 조각화를 충족할 수 없기 때문에 필요에 따라 수천 개의 조각으로 나뉩니다.

그러나 이것은 예외입니다. 이것은 일반적으로 발생하지 않습니다. 대부분의 파일 시스템은 조각화를 방지하는 데 매우 능숙하며 Linux 커널도 조각화로 인한 악영향을 방지하는 데 능숙합니다. 파일을 동시에 읽고 쓰는 여러 프로세스가 있으면 디스크는 동시에 어디에나 있어야 합니다.

Linux에는 조각 모음 솔루션이 많지 않습니다. XFS는 xfs_fsr정말 잘 작동하므로 조각 모음을 꼭 사용하고 싶다면 XFS가 좋은 선택입니다.

filefrag파일 조각화를 사용하거나 확인할 수 있습니다 hdparm.

# filefrag debian-6.0.6-amd64-netinst.iso 
debian-6.0.6-amd64-netinst.iso: 4 extents found

# hdparm --fibmap debian-6.0.6-amd64-netinst.iso

debian-6.0.6-amd64-netinst.iso:
 filesystem blocksize 4096, begins at LBA 0; assuming 512 byte sectors.
 byte_offset  begin_LBA    end_LBA    sectors
           0    3003928    3072407      68480
    35061760    2872856    2938391      65536
    68616192    2171576    2302647     131072
   135725056   56259072   56338047      78976

이것이 수백 또는 수천 개의 범위(조각)를 제공하지 않더라도 걱정할 필요가 없습니다.

일반적인 조각 모음 방법은 파일의 복사본을 만든 다음 원본 파일을 해당 파일로 바꾸는 것입니다. 예를 들면 다음과 같습니다.

cp -a yourfile yourfile.defrag
mv yourfile.defrag yourfile

파일 시스템에는 여유 공간이 많아야 합니다. 그렇지 않으면 새 파일이 이전 파일만큼 조각화될 가능성이 높습니다. (교체하기 전에 새 파일이 이전 파일보다 나은지 확인하십시오.)

그러나 내가 말했듯이 파일이 어떤 방식으로든 매우 심하게 조각화되지 않은 한 일반적으로 이 작업을 수행할 필요가 없습니다.

답변2

다른 사람들은 조각 모음이 SSD에 영향을 미치지 않을 수 있다고 언급했습니다. (이것이 오래된 질문이라는 것을 알고 있지만 맥락을 추가하고 싶었습니다.)

저는 동일한 주장을 더 강력하게 설명하고 싶습니다. 조각 모음이라는 개념은 SSD에는 전혀 의미가 없습니다. SSD는 순차 논리 블록을 플래시 메모리의 순차 블록에 쓰지 않습니다. 처리량을 최대화하기 위해 SSD 컨트롤러는 블록을 여러 NAND 칩(미니 RAID와 유사)에 분산시킵니다.

바라보다:http://www.anandtech.com/show/2829/5

SSD 컨트롤러는 최적의 속도를 위해 블록을 쓸 위치를 결정하고 각 플래시 메모리 셀을 균일하게 마모시킵니다. 따라서 논리 블록이 (운영 체제에게는) 순서대로 표시되어도 실제로는 완전히 다른 순서로 NAND에 저장되며 이는 좋은 것입니다. 뭔가 조각 모음 아이디어~해야 한다분열에는 아무런 의미가 없습니다.

답변3

ext4조각 모음 프로그램이 호출되기 때문입니다 e4defrag. (이제는 공식 e2fsprogs의 일부입니다).

그리고 (내 생각에는) fstrim둘 다에 작동해야 하는 명령 도 있습니다 . 파일 시스템에서 사용되지 않은 공간에 대한 삭제 요청을 보냅니다. 파일 시스템이 마운트되지 않은 경우 (즉, 삭제된 파일에 대한 폐기 정보를 즉시 전송하는 경우) 특히 유용할 수 있습니다.ext4xfs-o discard

이들 중 어느 것도 자동으로 설정되지 않습니다. 아주 특이한 사람이 아니라면 그럴 필요는 없습니다 e4defrag.

TRIM 항목이 더 관련성이 높습니다. 당시 성능 상황이 매우 불분명했기 때문에 기본적으로 꺼져 있었습니다(즉, 활성화하면 때로는 상당한 속도 저하가 발생할 수 있음). 죄송합니다. 새로운 하드웨어를 갖춘 Linux입니다 :). 저는 discard설치할 때 마운트 옵션을 활성화하는 경향이 있으며 파일을 삭제할 때 끔찍한 중단 현상이 발생하지 않습니다. (크루셜 m500 SSD).

SSD 리뷰를 읽으면 대부분의 SSD가 100% 가득 찬 상태를 유지하지 않을 때 가장 좋은 성능을 발휘한다는 것을 알 수 있습니다. :) 이는 필수는 아니지만 공간(예: 10%)을 예약하고 사용을 방지하는 한 가지 방법은 파티셔닝 시 전체 장치를 할당하지 않는 것입니다.

답변4

당신이 찾고 있는 도구는퍼스트림. 노트북/서버를 종료하지 않는 경우 매일, 매주 또는 밤마다 종료되도록 예약할 수 있습니다.

다음 스크립트를 다음 위치에 넣으세요 /etc/cron.weekly/01-fstrim.

#!/bin/sh
fstrim /
fstrim /home

실행 가능하게 만드세요:

chmod +x /etc/cron.weekly/01-fstrim

이제 스크립트를 실행해 보세요. 오류 메시지가 인쇄되어서는 안 됩니다. LUKS 구성을 변경하는 경우 이 작업을 수행하려면 재부팅해야 할 수도 있습니다.

http://lukas.zapletalovi.com/2013/11/how-to-trim-your-ssd-in-fedora-19.html

관련 정보