이 질문이 여러 번 논의되었다는 것을 알고 있지만 SSD에 어떤 최적화가 좋은지(및 사용 여부)에 대해 인터넷에서 다양한 의견이 있습니다. 또한 기술이 발전하여 일부 조언은 구식이 될 수 있습니다.
FS의 과잉 프로비저닝 및 여유 공간
이것은 여전히 관련성이 있는 것처럼 보이지만 사용자 cabirum에 따르면y 결합기논의하다:
분할되지 않은 공간을 과도하게 프로비저닝하고 분할된 공간의 20%를 여유 공간으로 남겨둘 필요가 없습니다. 둘 중 하나입니다. 핵심은 적절한 마모 레벨링을 위해 충분한 공간을 확보하는 것입니다.
반면에 대해서는 언급이 없다.건축 위키피디아아니면 이 글에서사우스휴이. 또 뭐야?이지리눅스둘 다 추천합니다!
Noatime, nodirtime 및 relatime 마운트 옵션
사우스휴이둘 다 추천하고,건축 위키피디아그리고이지리눅스noatime 및 사용자 andmarios에만 권장됩니다.y 결합기설명하다:
noatime: 이것은 오래된 것입니다. relatime을 사용하세요.
이는 Linux 2.6.30 이후 매뉴얼 페이지에 따른 기본 동작입니다.
치다
이게 아마 가장 큰 혼란이겠지
- 이지리눅스실행에서 다듬기
/etc/rc.local
.discard
설치 옵션을 사용하지 마십시오 . - 건축 위키피디아
fstrim.service
and.warning 을 사용하세요 .fstrim.timer
discard
- 사우스휴이시몬시온y 결합기옵션을 사용하세요
discard
.
쓰기 작업 제한
건축 위키피디아,사우스휴이,이지리눅스브라우저 캐시를 RAM으로 옮기는 것이 좋습니다. 일반적으로 이에 동의하지 않습니다.y 결합기.
IO 스케줄러
모두가 default 대신 Deadline
or 를 사용하는 것에 동의하는 것 같습니다 . 하지만 언제 사용해야 하는지 , 언제 사용해야 하는지 는 확실하지 않습니다 (파일 시스템/SSD 공급업체에 따라 달라지나요?).NOOP
CFQ
Deadline
NOOP
교환
얼마 전 누군가가 스왑을 완전히 비활성화하라고 했습니다(와우 :D). ~에 따르면건축 위키피디아,사우스휴이그리고이지리눅스놓다 vm.swappiness=1
.
이 모든 옵션이 약간 혼란 스럽습니다. 나는 지금까지 그 중 몇 개만 사용했습니다. 제가 중요한 것을 언급하지 않았나요? 일부 Linux 배포판은 위의 작업 중 일부를 자동으로 수행합니까?
인용하다:
- y 결합기:https://news.ycombinator.com/item?id=9633161
- 쉬운 리눅스:https://sites.google.com/site/easylinuxtipsproject/ssd#TOC -선택 사항: -reserve-some-space-for-overprovisioning
- 건축 위키피디아:https://wiki.archlinux.org/index.php/Solid_State_Drives
- 난시우:https://www.namhuy.net/1563/how-to-tweak-and-optimize-ssd-for-ubuntu-linux-mint.html
답변1
재오버 프로비저닝 - SSD 자체에 사용되지 않은 블록이 충분한지 확인해야 합니다. a) 분할되지 않은 공간에 있기 때문에 사용되지 않으므로 OS에서 기록되지 않거나 b) 0에 기록되었고 SSD 펌웨어가 색조를 구현하기 때문에 이를 알고 있는지 여부는 중요하지 않습니다. 할당되지 않은 것으로 처리하거나 c) DISCARD("가지치기") 작업의 대상이었습니다. 이들 중 하나만(그리고 하나만) 적극 권장합니다.
Re noatime: 나는 개인적으로 파일의 마지막 액세스 시간에 대해 신경 쓰지 않으며, 내가 사용하는 소프트웨어도 신경 쓰지 않는 것 같습니다. 그래서 "noatime"을 사용하여 모든 것을 설치했습니다. "noatime"을 사용하면 충돌이 발생하는 이름 없는 프로그램에 대한 모호한 언급이 인터넷에 있지만 저는 본 적이 없습니다.
재자르기/폐기: fstrim을 정기적으로 실행해야 합니다. 어떻게 부르느냐는 중요하지 않지만, 얼마나 자주 부르느냐는 중요합니다. 자주 재부팅하지 않거나, 디스크 공간을 매우 자주 사용하고 비우거나, 두 가지 모두를 수행하지 않는 한, 부팅할 때마다 이를 실행(예: rc.local 사용)하는 것은 과도할 수 있습니다. "폐기" 마운트를 사용하지 마십시오. 이렇게 하면 블록이 해제되는 시간에 가깝게 커널이 TRIM 작업을 수행하게 되므로 지연 시간이 증가할 수 있습니다. 예를 들어 오전 3시에 실행되는 크론 작업에 대해 눈치채거나 관심을 가질 가능성은 거의 없습니다. 평균적인 데스크톱 워크로드에는 한 달에 한 번이면 충분하고, 쓰기가 많은 데스크톱 워크로드에는 일주일에 한 번이면 충분할 것 같습니다. 블록 할당에 대한 세부 정보가 드라이브 펌웨어에 의해 숨겨지는 경우가 많기 때문에 fstrim이 권장되는 시기를 알 수 있는 완벽한 방법은 없습니다. 드라이브 성능이 눈에 띄게 떨어지는 경우 fstrim을 사용해 보는 것이 좋습니다. 속도 저하가 느껴지지 않는다면 아무 조치도 취할 필요가 없을 것입니다.
Re I/O 스케줄러 - 관심 있는 워크로드를 벤치마킹합니다. 경험적 증거를 대체할 수 있는 것은 없습니다.
재교환 - 요즘 RAM 가격이 꽤 저렴하기 때문에 나와 고용주는 RAM을 많이 구입합니다. 가정용으로 만드는 모든 컴퓨터에는 최소 16GB, 업무용 서버에는 최소 256GB입니다. 집과 직장에서 만난 모든 컴퓨터의 모든 작업 부하에 대해 모든 것이 RAM에 쉽게 들어가고 캐시 공간도 충분합니다. 따라서 집과 직장에서 스왑을 비활성화합니다. 또한 스왑을 사용하면 나와 사용자가 용납할 수 없는 성능 저하가 발생하므로 나와 내 고용주는 긴급하게 더 많은 RAM을 구입해야 합니다. 그래서 저는 스왑을 사용하고 싶지 않습니다. 스왑은 제가 해결하고 싶은 메모리 부족 문제를 숨기려고 하는 것입니다. 나는 당신의 입장에 대해 논평할 수 없습니다. 비슷하지 않을까 싶습니다.
마지막으로, 널리 사용되는 Linux 배포판에 기본적으로 설치 및 활성화되는 많은 서비스를 비활성화하거나 제거했습니다. 이렇게 하면 가상 메모리가 절약되지만 더 중요한 것은 공격으로부터 시스템을 "강화"한다는 것입니다. 이렇게 하면 성능 저하 없이 디스크로 교체할 수 있는 쓸모 없는 RAM이 거의 없어야 합니다.