답변:
파일 시스템 EXT4 + TRIM :
스왑 파티션 :
파티션 정렬 :
따라서 EXT4 + TRIM 을 기계식 하드 드라이브에서 SWAP와 함께 사용 하거나 SSD에서 SWAP를 사용하지 마십시오 .
위의 내용은 소스 : SSD 성능을 최대화하는 방법을 참조하여 구현할 수 있습니다 .
nodiratime
때 지정할 필요가 없습니다 noatime
. 동의, 그것은 동료 대단하다에 시원하고 고급 보이지만 noatime
inodes에서 시간을 비활성화하고 디렉토리도 inode이므로 "손을 씻고 엄지 손가락을 씻으십시오" 라고 말하는 것과 같습니다 . :)
선택 에서 ext4를 하고, 중 으로 마운트 discard
에 대한 옵션 TRIM을 지원 또는 FITRIM을 사용 (아래 참조). noatime
"SSD 마모"가 우려되는 경우에도이 옵션을 사용하십시오 .
프로세스간에 공정성을 제공하고 자동 SSD를 지원하므로 다중 애플리케이션 서버 에서 CFQ (기본 I / O 스케줄러) 를 변경하지 마십시오 . 그러나 데스크톱 에서 데드 라인 을 사용 하면로드시 응답 성이 향상됩니다.
적절한 데이터 정렬을 쉽게 보장하려면 각 파티션의 시작 섹터는 2048의 배수 (= 1MiB) 여야합니다 . fdisk -cu /dev/sdX
그것들을 만드는 데 사용할 수 있습니다 . 최근 배포판에서는 자동으로이를 처리합니다.
SSD에서 스왑을 사용하기 전에 두 번 생각하십시오. 아마도 HDD의 스왑에 비해 훨씬 빠를 것이지만 디스크를 더 빨리 마모시킬 것입니다 (관련되지 않을 수도 있습니다, 아래 참조).
Ext4 는 가장 일반적인 Linux 파일 시스템입니다. SSD와 함께 우수한 성능을 제공하고 TRIM (및 FITRIM) 기능을 지원하여 시간이 지남에 따라 우수한 SSD 성능을 유지합니다 (이렇게하면 사용하지 않은 메모리 블록이 지워져 나중에 빠르게 쓰기 액세스 할 수 있음). NILFS 는 특히 플래시 메모리 드라이브 용으로 설계되었지만 벤치 마크에서 실제로 ext4 보다 성능이 우수 하지는 않습니다 . BTRFS는 아직 실험으로 간주됩니다 (정말 더 잘 수행하지 않습니다 중 하나 ).
트림 기능은 파일 시스템에서 더 이상 사용되지 않는 SSD 블록을 지 웁니다. 이렇게하면 장기적인 쓰기 성능이 최적화되며 디자인으로 인해 SSD에서 권장됩니다. 파일 시스템이 드라이브에 해당 블록에 대해 알려줄 수 있어야합니다. ext4 의 discard
마운트 옵션은 파일 시스템 블록이 해제 될 때 이러한 TRIM 명령 을 발행 합니다. 이것은 온라인 폐기 입니다.
그러나이 동작은 약간의 성능 오버 헤드를 의미합니다. Linux 2.6.37부터는 FITRIM을 사용하여 (예 : crontab에서) 일괄 처리discard
를 사용하지 않고 선택적으로 일괄 삭제 를 수행 할 수 있습니다 . 이 fstrim
유틸리티는이 -E discard
옵션 (온라인)과 옵션을 수행 fsck.ext4
합니다. 그러나이 도구의 "최근"버전이 필요합니다.
SSD는 이와 관련하여 수명이 제한되어 있으므로 드라이브 쓰기를 제한 할 수 있습니다. 그러나 너무 걱정하지 마십시오 . 오늘날 최악의 128GB SSD는 5 년 이상 하루 에 최소 20GB의 쓰기 데이터 (셀당 1000 쓰기주기)를 지원할 수 있습니다 . 더 나은 것 (그리고 더 큰 것)은 훨씬 더 오래 지속될 수 있습니다.
SSD에서 스왑 을 사용하려는 경우 커널은 비 회전 디스크를 발견하고 스왑 사용량 (커널 레벨웨어 레벨링) 을 무작위로 지정 합니다. 그러면 SS
스왑이 활성화되면 커널 메시지에 (Solid State)가 표시됩니다.
/ dev / sda1에 2097148k 스왑 추가 우선 순위 : -1 범위 : 1 전체 : 2097148k SS
또한 나는 대부분의 aliasgar 의 답변에 동의하지만 (대부분의 경우이 웹 사이트 에서 불법적으로 복사 되었더라도 ) 스케줄러 부분 에 부분적으로 동의하지 않아야합니다 . 기본적으로 최종 기한 스케줄러 는 엘리베이터 알고리즘을 구현할 때 회전 디스크에 최적화되어 있습니다. 자,이 부분을 명확히하자.
커널 2.6.29부터 SSD 디스크가 자동으로 감지되며 다음을 통해이를 확인할 수 있습니다.
cat /sys/block/sda/queue/rotational
당신은 가야 1
하드 디스크과 0
SSD를 위해.
이제 CFQ 스케줄러는이 정보를 기반으로 동작을 조정할 수 있습니다. 리눅스 3.1부터 커널 문서 cfq-iosched.txt
파일 은 다음과 같이 말합니다 :
CFQ에는 SSD에 대한 일부 최적화 기능이 있으며 높은 큐 깊이 (한 번에 여러 요청을 한 번에 여러 요청)를 지원할 수있는 비 회전 미디어를 감지하면 [...].
또한 최종 기한 스케줄러는 섹터 번호를 기준으로 회전 디스크에서 정렬되지 않은 헤드 이동을 제한하려고합니다. 커널 doc 인용 deadline-iosched.txt
, fifo_batch
옵션 설명 :
요청은 증가하는 섹터 순서로 서비스되는 특정 데이터 방향 (읽기 또는 쓰기)의``배치 ''로 그룹화됩니다.
그러나 SSD를 사용할 때이 매개 변수를 1로 조정하면 흥미로울 수 있습니다.
이 매개 변수는 요청 당 대기 시간과 총 처리량 간의 균형을 조정합니다. 낮은 대기 시간이 주요 관심사 인 경우 더 작은 것이 좋습니다 (1 값이 선착순 동작을 생성 함). fifo_batch를 늘리면 일반적으로 대기 시간 변동 비용으로 처리량이 향상됩니다.
일부 벤치 마크 에서는 서로 다른 스케줄러간에 성능 차이가 거의 없음을 제안 합니다 . 그렇다면 공정성을 권장하지 않는 이유는 무엇입니까? CFQ가 벤치에서 거의 나쁘지 않을 때 . 그러나 데스크톱 설정에서는 일반적으로 디자인 때문에 (아마도 처리량 비용은 낮음)로드시 데드 라인 을 사용하여 응답 성이 향상됩니다.
즉, 더 나은 벤치 마크는 마감일을로 사용해보십시오 fifo_batch=1
.
SSD에서 기본적으로 데드 라인을 사용하려면 /etc/udev.d/99-ssd.rules
다음과 같이 파일을 만들 수 있습니다 .
# all non-rotational block devices use 'deadline' scheduler
# mostly useful for SSDs on desktops systems
SUBSYSTEM=="block", ATTR{queue/rotational}=="0", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="deadline"
archlinux 기사 Solid State Drives 는 파일 시스템 선택 섹션에서 말합니다 :
Ext2 / 3 / 4, Btrfs 등을 포함한 파일 시스템에는 많은 옵션이 있습니다.
Btrfs
Btrfs 지원은 Linux 커널의 메인 라인 2.6.29 릴리스에 포함되었습니다. 일부는 ext4에 대한이 후속 모델의 얼리 어답터가 있지만 프로덕션 용도로는 충분히 성숙하지 않은 것으로 생각합니다. 자세한 정보 는 Btrfs 기사 를 읽는 것이 좋습니다 .Ext4
Ext4는 SSD를 지원하는 다른 파일 시스템입니다. 2.6.28 이후 안정적으로 간주되며 매일 사용하기에 충분히 성숙합니다. Btrfs와 달리 ext4는 디스크 특성을 자동으로 감지하지 않습니다. 사용자는 fstab의 폐기 마운트 옵션 (또는 tune2fs -o waste / dev / sdaX)을 사용하여 TRIM 명령 지원을 명시 적으로 활성화해야합니다.
Btrfs와 Ext4는 모두 SSD를 효율적으로 사용하기위한 두 가지 주요 요구 사항을 충족합니다.
성능을 위해 두 가지 다른 요구 사항이 있습니다.
첫 번째는 오늘날 대부분의 Linux 설치 프로그램에서 자동으로 수행됩니다. fdisk는 "-cu"플래그로 시작하면 1024KB 경계에 파티션을 작성합니다.
두 번째는 Btrfs의 경우 자동이지만 Ext4의 경우 "/ etc / fstab"파일의 각 Ext4 파티션에 대한 마운트 옵션 목록에 "discard"를 추가하여 수동으로 수행됩니다. 자세한 내용은이 하우투를 참조하십시오 .
내 의견으로는 Ext4에 fstab을 거의 사용하지 않아도이 성숙하고 우수한 파일 시스템을 사용하지 않아도됩니다.
BTRFS IMO. Ubuntu 8.04 이상에는 GPT를 인식하는 GRUB 버전이 포함되어 있습니다. GPT와 Gdisk를 사용하면 파티션을 정렬 할 수 있습니다. fdisk도 그렇게 할 것이라고 믿습니다.
어쨌든 여기 BTRFS 파일 시스템에 Ubuntu 설치에 대한 링크가 있습니다.
http://www.linuxbsdos.com/2011/05/05/how-to-install-ubuntu-11-04-on-a-btrfs-file-system/
희망이 도움이됩니다.
gdisk
및grub 2.0.x
, (나는 누군가가 대답 아래에 언급 추측)와 MBR 이전을 사용하여 기존의 방법grub 0.9.7
과fdisk
.. 당신이 여기에서 자세한 내용을 찾을 수 있습니다 wiki.archlinux.org/index.php/Solid_State_Drives를