SSD를 사용하는 경우 SSD 수명을 늘리려면 스왑 피스를 변경해야합니까?


35

다음 제안이 포함 된 이 기사 를 발견 했습니다 .

스왑 및 스왑

스왑 파티션을 기존 HDD에 보관했습니다. SSD의 스왑 속도는 더 빠르지 만 SSD의 수명도 단축됩니다.

내 시스템에는 충분한 메모리가 있으므로 스왑 피스 값을 0으로 줄여 우분투가 절대적으로 필요할 때만 스왑하도록 지시합니다. vm.swappiness = 0 줄을 /etc/sysctl.conf에 추가하여이 작업을 수행했습니다.

swappiness를 0으로 설정하면 SSD 수명이 늘어난다는 것이 사실입니까? 다른 곳에서는 이것에 대한 언급을 찾을 수 없습니다.

답변:


30

swappiness를 0으로 줄이면 사용 가능한 RAM이 더 이상 없을 때 OS가 스왑에 SSD 만 사용하기 시작합니다.

이론적으로 SSD 쓰기 횟수가 줄어들 기 때문에 SSD 수명을 늘릴 수 있습니다. 실제로 SSD 수명을 늘리는 지 여부에 따라 다릅니다.

  • Linux는 swappiness 값이 더 높은 경우에도 스왑 (특히 Windows와 비교)을 거의 사용하지 않으므로이 설정은 RAM 사용량과 비교하여 RAM이 많은 시스템의 스와핑 동작을 변경하지 않을 수 있습니다. RAM이 부족한 경우 기본값 60으로 스와핑이 자주 발생할 수 있으며,이 경우 스왑을 줄이면 SSD의 쓰기주기 제한에 큰 영향을 줄 수 있습니다.

  • SSD의 쓰기 내구성은 간단한 소비자 사용, 적어도 MLC 기반 SSD의 경우 여전히 꽤 높습니다 . 그들은 현재의 MLC 기반 SSD가 ca를 견딜 수 있다고 말합니다. 쓰기 전에 3000-5000 쓰기주기. 3000 제한으로 계산하면 매일 10GB 쓰기 작업을 수행하는 128GB SSD가 ca에서 행복하게 작동한다는 의미입니다. 38000 일, 즉 ca. 100 년. 물론 더 큰 SSD가 있다면 훨씬 나중에 나올 것입니다. 따라서 셀이 마모되어 SSD가 죽을 가능성은 거의 없습니다. (물론 회사 / 서버 환경에서 SSD를 사용하는 경우 일일 쓰기는 훨씬 높지만 회사 환경에서는 일반적으로 SLC 기반 SSD가 사용됩니다.)

  • 이 쓰기주기 제한이 너무 높아 SSD 제조업체 (최초의 SAMSUNG)는 소비자를위한 TLC 기반 SSD 를 제조하기 시작했으며 이는 단지 ca. 쓰기주기는 1000 회이지만 저렴합니다. 이 회사들은 SSD의 쓰기주기 제한조차도 제품 사용 시간보다 오래 지속될 것이라고 말합니다. (2024 년에도 여전히 128GB SSD를 사용하지는 않을 것입니다.) TLC 기반 SSD를 가지고 있고 50GB / 일과 같이 해당 드라이브에 자주 쓰기를하면 swappiness 값을 줄이는 것이 큰 영향을 줄 수 있습니다. SSD의 수명에.
  • 여기 열광 자들이 SSD에 지속적으로 글을 써서 SSD의 내구성을 테스트 한 거대한 스레드 가 있습니다. 테스트 방법이 완전히 정확하지는 않지만 결과는 매우 인상적입니다.

요약하자면, 이론적으로는 스왑 피스를 줄이면 SSD 수명이 길어 지지만 실제로는 그렇지 않습니다. 그러나 TLC 기반 SSD가 있고 RAM이 부족하고 일반적으로 SSD에 자주 쓰는 경우에도 실질적인 영향을 줄 수 있습니다.

MLC 기반의 128GB SSD를 사용하며 대부분 사무실 / 브라우징에 시스템을 사용하고 RAM 사용량에 비해 많은 RAM을 사용하므로 SSD에 쓰기로드가 너무 적습니다 (시스템이 24/7 일 때에도). 그러나 스와핑이 전혀 필요없고 스왑을 낮추는 것이 너무 쉽기 때문에 SSD를 설치할 때 스와핑을 0으로 설정 했습니다. 왜 그렇지 않습니까? (실제로 HDD 만있는 컴퓨터에서도 모든 컴퓨터에서 swappiness를 0으로 설정했습니다.)

당신은 당신의 SSD가 함께 생활하는 동안 고통을 얼마나 많은 쓰기 확인할 수 있습니다 smartctl, 선의 모습으로 Total_LBAs_Written,이 훨씬 512B 섹터가 SSD에 기록 된 방법을 보여줍니다. (예, SSD에는 512b가 아닌 물리적으로 4K 블록이 있지만 SMART는 여전히 말합니다 : Sector Size: 512 bytes logical/physical512 블록으로 tune2fs -lLifetime writes 출력 과 비슷한 결과를 얻습니다 .) 512와 함께 그 수를 곱하면 바이트 단위로 쓰기를 얻습니다. 또는 짧게 :

sudo smartctl -a /dev/sda | grep Total_LBAs_Written | awk '{print $10*512/1024/1024/1024 " GiB"}'

/ dev / sda를 위해 GiB에서 인쇄합니다. (장치 이름을 SSD 이름으로 변경하기 만하면됩니다.) 128GB SSD에 ca. 1 년이 조금 넘는 시간에 800GB의 쓰기가 수행되므로 3000에서 7 회만 사용됩니다.


파일 시스템을 사용하면 쓰기 증폭을 줄이기 위해 트리밍 할 수 있습니다. SWAP 파티션에 해당하는 것이 있습니까?
브라이스

이 대답은 "스왑"의 범위가 0에서 100 사이이고 0은 스왑이 없음을 의미하고 100은 RAM이 없음을 의미한다고 가정합니다. 그러나 값 에 대한 또 다른 대답swappiness숫자가 0에서 200 사이이며 다른 유형의 스와핑에 대한 상대 가중치를 나타냅니다.
palswim

7

SSD 마모에 대한이 모든 이야기는 "추적"입니다. 나는 같은 느낌을 받았지만 상업적으로 사용하기 시작했습니다. 나는 동해안에 가장 빠른 오라클 클러스터 중 하나가 있습니다. 3 년 전 전체 스토리지 및 임시 파일 시스템을 위해 SSD를 설치했습니다. 우리는 SSD에 하루에 수십억 건의 쓰기 작업을 수행합니다. 3 년이 지난 후에도 여전히 10 %의 연소가 발생하지 않았습니다. 내가 상업적으로 그렇게 할 수 있다면, 그들은 주거 상황에서 결코 닳아 없어지지 않을 것 입니다. 그래서 저는 리눅스 워크 스테이션과 BAM의 스왑 공간을 위해 특별히 SSD 솔루션을 구현했습니다 !!!

따라서 귀하의 마일리지는 다양하지만 SSD는 모든면에서 갈 수있는 방법입니다.

데이브


서버용 SSD는 소비자 용 (보다 저렴한) 쓰기보다 더 많은 쓰기 작업을 수행 할 수 있습니다.
jarno 2019

1
이해했지만 기업에 24x7로 배포되는 워크 스테이션에 소비자 용 SSD가 설치되어 있으며 2 일마다 델타를 백업하지만 2 년 동안 단일 장애는 발생하지 않았습니다. 물리적 회전 플래터의 MTBF는 3 년이며 25 년 이상 시스템을 판매 / 서비스 한 경험에 의하면 매우 정확합니다. SSD는 상업용 또는 소비자의 다른 모든 옵션보다 성능이 뛰어납니다.
TekOps

3

. SSD 수명을 늘리려면 교체를 변경해야합니다.

Swappiness를 사용하면 사용중인 스왑 파일의 양을 제어 할 수 있습니다. 스와 피 니스 값은 0에서 100으로 변경 될 수 있습니다. 스왑 공간 값이 높을수록 커널이 스왑 공간을 더 많이 사용하려고할수록 스왑 공간 값이 낮을수록 커널이 설정에 따라 스왑 공간을 사용하지 않거나 사용하지 않습니다.

기본 swappiness 값은 60입니다. RAM이 많으면 SSD와 HDD에 읽고 쓰는 스왑 공간을 사용하지 않아야합니다. RAM이 4GB 이상인 시스템의 경우 스왑 파일이 HDD에있는 상태에서 스왑 피스 설정을 10에서 0 사이로 변경하여 스왑 사용을 줄이십시오.

스왑 공간을 실행하는 것은 디스크 I / O를 많이 사용하므로 실제로 SSD에는 좋지 않습니다. SSD는 잘못되기 전에 너무 많은 쓰기 작업 만 처리 할 수 ​​있으며 다른 드라이브를 구입해야합니다. 따라서 가능하다면 스왑 공간을 보조 회전 드라이브로 옮기십시오.

쓰기 작업으로 솔리드 스테이트 드라이브가 비교적 빨리 마모됩니다. 특히, 가장 오래된 SSD는 그 측면에서 취약했지만, 신세대에게는 여전히 그 정도가 낮습니다.

새 디스크에 새 파티션을 만들거나 대신 스왑 파일을 만들 수 있습니다. 새로운 파티션을 만들면 거의 항상 더 나은 성능을 얻을 수 있습니다.

이동할 대체 드라이브가없는 경우 실제 RAM이 100 % 가득 찼을 때 스왑 만 활성화하도록 설정을 변경하여 스왑 파일의로드를 줄이고 SSD를 도울 수 있습니다. 키보드에서 Ctrl+ Alt+ T를 누르면 터미널이 열립니다. 열리면 아래 명령을 실행하십시오.

echo 0 > /proc/sys/vm/swappiness

SSD 마모는 쓰기주기와 관련이 있습니다.

쓰기 작업으로 솔리드 스테이트 드라이브가 비교적 빨리 마모됩니다. 특히, 가장 오래된 SSD는 그 측면에서 취약했지만, 신세대에게는 여전히 그 정도가 낮습니다.

트림 사용

TRIM은 SSD와 함께 사용하는 이점입니다. 소프트웨어에서 실행되며 SSD 컨트롤러와 통신하여 파일 시스템에 더 이상 필요없는 블록을 알려주고 안전하게 정리하고 덮어 쓸 수 있습니다. 이로 인해 실제로 성능이 향상되지는 않지만 SSD 수명이 길어집니다.

출처 : Linux SSD 조정SSD 최적화 방법


무엇이 잘못되었는지 알고 싶습니다. OP는 SSD 수명을 늘리기 위해 스왑 피스를 변경해야하는지 물었고 스왑 피스를 변경해야한다고 대답했습니다.
Mitch

최신 버전의 Ubuntu가 자동으로 SSD에 TRIM을 사용한다는 것을 알고 있습니다.
Paddy Landau

최신 Ubuntu는 특정 SSD 모델에 대해서만 TRIM을 사용합니다. @PaddyLandau
브라이스

2

swappiness를 0으로 설정하면 SSD 수명이 늘어난다는 것이 사실입니까?

Linux가 메모리 블록을 스왑 파티션으로 덜 자주 이동시키는 원인이됩니다. 스왑에 쓰기는 일반적으로 스왑이 SSD에있는 경우 쓰기주기를 사용합니다. 스왑은 필요할 때만 사용되며 RAM이 충분하면 최대 절전 모드를 원하지 않는 한 다른 문제이므로 RAM이 없으면 더 좋습니다.

이 작업의 효과는 다를 수 있지만 SSD의 일부 쓰기주기를 저장하기 위해 수행하는 것은 잘못되었습니다. 최신 SSD (2012 년부터)에는 많은 쓰기주기가 있으며 거의 ​​모든 RAM을 사용하는 경우 응용 프로그램의 성능이 저하 될 수 있습니다. 프로그램을 설치하는 동안 만기 스왑보다 더 많은 쓰기주기를 사용합니다. 다시 한 번 스왑은 기본적으로 필요할 때만 사용됩니다.

스왑에 사용되는 SSD 쓰기주기가 걱정되는 경우 충분한 RAM이 있고 스왑을 망칠 필요없이 HDD에서 임시 스왑 만 활성화하면 스왑을 모두 제거 / 비활성화 할 수 있습니다. 그것이 가장 좋은 길일 것입니다.


0

swappiness 설정을 더 낮은 값으로 변경하는 것이 좋습니다. 시스템에 4GB 이상의 램을위한 충분한 메모리 / 램이 있으면 "0"이 가장 좋습니다. 높은 램 시스템으로 10에서 swappiness가 있지만 대부분의 모든 것이 이미 ram에 있기 때문에 우분투가 스왑 파티션에 아무것도 넣지 않습니다.

나는 약간의 Google 검색을 했고이 페이지를 찾았습니다 http://namhuy.net/1563/how-to-tweak-and-optimize-ssd-for-ubuntu-linux-mint.html

Ubuntu 시스템을보다 효율적으로 실행하고 SSD를 더 오래 유지하기 위해 SSD를 조정하고 최적화하는 데 도움이 될 수 있습니다.


0

교환 율 변경은 실제로 영향을 미치지 않을 수 있습니다. 우리는 RAM이 부족한 시스템에서 많은 것을 해왔으며 SSD에 가능한 한 많이 밀어 넣고 싶었고 실제로 메모리에 남아있는 항목 (필요한 항목)에 거의 영향을 미치지 않았습니다. 이것은 ot 포인트 일 수 있습니다.


0

smartctl출력 을 확인하는 아이디어가 마음에 들었지만 코드가 조금 더 작습니다. 나는 사람들이 왜 awkgrep기능이 내장되어 있는지 모르는 이유를 결코 이해하지 못했습니다 .

sudo smartctl -a /dev/sdb | awk ' ($0 ~ /Total_LBAs_Written/) {print ($10*512)/(1024^3) " GiB"}'

이것이 내가 사용하는 코드이지만 :

sudo smartctl -a ${device} | awk ' ($0 ~ /Total_LBAs_Written/) { if (($10*512)/(1024^3) > 1000) { msg="TiB"; size=($10*512)/(1024^4); } else { msg="GiB"; size=($10*512)/(1024^3); }; printf "\nThis device has had %.2
f %s written to it.\n",size,msg; }'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.