리눅스를 SSD 사용에 최적화 하는 방법

리눅스에서 SSD를 최대한 활용해 보세요. 여기, 알아 둘 필요가 있는 정보를 모아 소개합니다.

 

리눅스도 상당히 훌륭하게 설치 직후 바로 사용할 수 있게 됐습니다. 하지만, 최대한 매끄럽게 움직이게 하려면, 직접 기름칠하고 손질해서 최적화 해줘야 할 부분이 아직 몇 군데 남아 있습니다. 그냥 생각해 보면 전원 소비를 조절해 주는 게 가장 먼저 떠오르지만, SSD 사용을 위해 시스템을 최적화 하는 것도 중요합니다. 잘 관리된 SSD는 사용에 더 큰 기쁨을 가져다 주니 말이지요.

 

윈도우도 XP때 그랬지만, TRIM 기능을 켜주지 않으면 데이터 찌꺼기가 남아 SSD의 성능이 감소합니다. SSD의 처리 방식과 운영 체제의 파일 삭제 방식이 서로 잘 연계되지 않아서 발생하는 문제죠. 예전 기계식 하드 디스크에서는 파일을 삭제할 때 실제로 자료를 지우지 않고 위치를 알려주는 연결만 끊었습니다. 그리고 새 파일을 저장할 때 그 위치에 자료를 덮어쓰기 했죠. 이렇게 했던 이유는 지우는데 시간이 걸리기 때문입니다. 파일 지우느라 기다리고, 다시 새 파일 쓰느라 또 기다리면 번거롭겠지요. 이와는 달리, 덮어쓰기는 그 위에 바로 쓰는 거라 시간이 추가적으로 들지 않았습니다. 그래서 윈도우나 리눅스 모두 파일을 삭제하면, 실제로 지우지 않고 연결만 끊도록 동작하게 되어 있습니다.

 

 

그런데, SSD는 자료 덮어쓰기 기능이 없습니다. 실제로 한 번 지우고, 빈 자리에 써줘야 하는 셈이지요. 하지만, 윈도우 XP나 리눅스 모두 이전 방식 그대로 파일 연결을 끊기만 합니다. 자료, 데이터는 그대로 계속 남습니다. 이후 덮어쓸 것을 염두에 둔 동작인데, SSD는 덮어쓰기가 안 되다 보니 이 남은 자료가 계속해서 쌓입니다. 그렇게 계속 불필요한 자료가 쌓이다 보면, 성능 저하가 발생하기 시작하죠. 그래서 파일을 지울 때 마다 연결만이 아니라 실제 자료까지 말끔히 제거해 주는 기능인 TRIM 기능이 필요합니다.

 

윈도우는 윈도우 7, 8 때부터 기본적으로 TRIM 기능이 켜져 있습니다. 하지만 리눅스는 비교적 최근까지도 TRIM 기능이 기본으로 켜져 있지 않았습니다. 우분투만 해도 14.04 바로 전 버전 (우분투 13.10)까지 TRIM 기능이 꺼져 있었습니다. 당연히 켜져 있을 거라 생각하고 사용했는데, 꺼져있다는 걸 알고 의외라는 생각을 했습니다. 우분투 14.04와 리눅스 민트 17 버전은 SSD 설치 시 자동으로 TRIM이 켜지지만, "cron" 작업으로 이걸 처리합니다. 그런데 일정 주기로 명령을 실행하는 cron 작업은 대부분의 경우 TRIM 기능을 실행하기에 최적의 방법은 아닙니다. 더군다나 모든 SSD 제품에서 자동으로 TRIM이 켜지는 것 또한 아닙니다. 때문에, 아래에서 최적화된 TRIM 적용 방법도 소개합니다.

 

최상의 성능을 얻고 SSD의 소모를 최소화 할 수 있도록, 리눅스 시스템을 위한 이 최적화 방법들을 적용해 보세요.

 

 

리눅스, SSD를 위한 최적화
배포판 업데이트

 

대부분의 사람에게는 해당되지 않는 문제겠지만, 그래도 언급할 만한 가치는 충분하지요. 프로그램, 커널, 파일 시스템을 비롯한 여러 부분에서 항상 최적의 상태를 유지하려면, 즐겨 사용하는 배포판의 최신 버전을 사용하는 게 제일 좋습니다. 지금도 지원되지만 훨씬 오래된 버전 (우분투 12.04와 같은 버전)에 계시다면, 최신 버전으로 업그레이드 하는 게 가장 좋습니다 (14.04와 같은 버전). 운영 체제를 좀 더 SSD 친화적으로 만들어주는 변화가 여럿 적용되어 있으니 말이지요.

 

 

리눅스, SSD를 위한 최적화
SSD 펌웨어 업데이트

 

SSD의 펌웨어(SSD 안에 들어 있는 동작 제어 프로그램)를 업그레이드 하는 것도 좋은 생각입니다. 업그레이드 하는 방법은 제조사 마다 다르기 때문에, 각 SSD별로 업그레이드 방법을 확인하셔야 합니다. 이 때 일부 제품은 (전부는 아님) 리눅스에서 펌웨어를 업데이트 할 수 없다는 사실을 염두에 두셔야 합니다. 리눅스 대신, (리눅스 라이브 CD와 비슷한) 특정 부팅 환경을 사용하거나 혹은 윈도우 유틸리티를 사용해 업데이트를 진행해야 합니다.

 

 

리눅스, SSD를 위한 최적화
Ext4 사용

 

 

리눅스를 새로 설치하신다면, ext4 파일 시스템을 사용하는 게 제일 좋습니다. 가장 많이 사용되며, 가장 안정적인 파일 시스템이고, TRIM 기능도 지원합니다 (대신 지금도 여전히 켜줄 필요가 있습니다. 방법은 아래에서 정리합니다).

 

그런데 이걸 사용하는 게 큰 문제가 되지는 않을 겁니다. 대부분의 배포판이 ext4를 기본으로 사용하고 있으니 말이죠.

 

 

리눅스, SSD를 위한 최적화
부팅 시 마운트 옵션

 

리눅스는 매번 부팅할 때마다, 다양한 종류의 드라이브를 마운트 하고 불러 들여서 연결합니다. 사용할 수 있도록 미리 준비시켜 두는 거죠. 드라이브를 사용할 수 있게 불러 들이는 마운트 작업은 하드웨어나 필요에 따라 다양한 옵션을 줄 수 있는데, 이 중 일부는 SSD에 사용하기에 알맞습니다.

 

 

TRIM 기능을 켜고 이런 옵션을 적용해 줄 수 있도록, 터미널을 연 뒤 sudo nano /etc/fstab 명령을 실행합니다. 그리고 다음으로, 이 파일에 있는 목록에서 실제 SSD에 있는 파티션을 찾아 보세요. 여기에 있는 파티션은 보통 UUID로 구분해서 나열되어 있는데, UUID는 /dev/sdAB 구분 방법 보다 더 정확합니다. 혹시 SSD에 파티션이 여러 개 있다면, blkid /dev/sdAB 명령을 사용해 UUID를 확인할 수 있습니다. 여기서 AB는 디스크나 파티션에 따라서 A는 a~z로, B는 1-9로 환경에 맞춰 대입하시면 됩니다.

 

 

이제, 네 번째 옵션 자리 끝에 쉼표로 구분해서 두 가지 마운트 옵션을 추가해 줍니다. discardnoatime을 말이죠. discard는 SSD의 TRIM 기능이 파일이 삭제될 때마다 실행되도록 해줍니다. 앞서 위에서 언급했던 것처럼, TRIM 기능을 사용하게 되면 성능과 수명이 향상됩니다. 다른 옵션인 noatime은 파일에 마지막으로 접근한 시간을 파일 시스템에 기록하지 않도록 해줍니다. 파일을 수정한 시간만 기록하게 되는 셈이지요. 이렇게 마지막 접근 시간을 기록하지 않게 해주면, SSD의 소모를 줄여줄 수 있습니다. 파일에 마지막으로 접근한 시간도 기록하려면 쓰기 작업이 필요한데, 컴퓨터를 사용하면서 접근하는 파일이 상당히 많기 때문에 매번 쓰기 작업이 일어나겠지요. 반면에 수정하는 파일은 상대적으로 적을 것입니다. 이렇게 수정을 마치고 나면 위의 스크린샷과 같은 모습처럼 보일 겁니다. 이 과정을 정리하면, 아래와 같습니다.

  1. 터미널을 실행합니다.
  2. sudo nano /etc/fstab를 입력해 fstab 파일을 엽니다.
  3. ext4를 사용하는 모든 파티션의 네 번째 옵션 부분 끝에 discardnoatime을 쉼표와 함께 추가합니다 (예: errors=remount-ro,discard,noatime). 이 때, 쉼표 앞뒤에 결코 공백이 있으면 안됩니다!
  4. 저장 후 컴퓨터를 재시작 합니다.

혹시 noatime 옵션을 적용한 후 일부 프로그램이 제대로 동작하지 않는다면 (마지막으로 수정한 시간 보다 마지막으로 접근한 시간이 이전에 있는 게 일반적으로는 불가능하니 말이지요), noatimerelatime으로 바꿔 주시면 됩니다. relatime 옵션은 쓰기 작업 때 마지막으로 접근한 시간과 마지막으로 수정한 시간을 모두 같은 값으로 업데이트 하게 해줍니다. 두 옵션에 대한 비교 내용은 이곳의 글을 참고해 보세요.

 

 

리눅스, SSD를 위한 최적화
스왑 사용하지 않기

 

 

SSD를 사용할 때는 스왑(SWAP, 메모리가 부족할 경우 사용하는 예비 공간) 파티션을 사용하지 않는 것도 매우 좋은 방안입니다 (사용해야 할 심각한 이유가 있지 않은 한은 말이지요).

 

스왑 파티션의 끊임 없는 읽기와 쓰기는 분명 SSD를 상당한 수준으로 소모시킵니다. 그래도 스왑 파티션을 정말 사용해야 겠다는 생각이 드신다면, 가능한 한 SSD가 아닌 두 번째 하드 드라이브에 위치시키는 것이 낫습니다. 물론, SSD에 스왑 파티션을 두고 싶은 유혹이 느껴지시겠지만 (지금까지 사용해 온 것 중 가장 높은 성능을 보이는 스왑 파티션이 될 겁니다), 그 속도는 그 만큼 큰 대가를 치러야 합니다.

 

많은 사람이 심각할 정도로 많은 양의 읽기 쓰기가 발생하는 최대 절전 모드만 끈다면 스왑 파티션을 추가해도 괜찮다고 이야기합니다. 하지만 아마 충분한 수준 이상의 메모리를 가지고 있어 스왑 파티션을 사용하는 일이 드물 것인 데다가, 그냥 공간만 차지할 겁니다. 잠재적으로는 SSD 소모와 수명 단축을 유발하겠지요. 그 뿐만 아니라, 처음부터 설치 시 스왑 파티션을 추가하지 않는 게 최대 절전 모드를 끄는 쉬운 방법일 겁니다.

 

 

리눅스, SSD를 위한 최적화
마무리

 

글에서 설명한 방법이 리눅스에서 좀 더 최적화된 SSD 경험을 할 수 있게 해줄 겁니다. 그리고, SSD가 여러분에게 감사할 겁니다. 이 최적화 방법을 적용하지 않았을 때보다 몇 년이나 더 오래 가면서 말이지요. 요즘 운이 좋다는 느낌이 드신다면, 심약한 사람에게는 어울리지 않을 훨씬 더 많은 SSD 관련 최적화 방법을 연구해 볼 수도 있겠지요. 모두 여러분에게 달렸지만, 이 글에서 설명한 방법 만으로도 SSD에 충분할 겁니다. 대부분의 다른 비법이나 방법은 드러나는 차이가 아주 미미한 사소한 잔손질 정도일 겁니다.

 

어떤 SSD 최적화 방법을 추천하고 싶으신가요? 스왑 파티션 처리 방법에 대해 어떻게 생각하세요? 오에스 톡(OSTalk) 커뮤니티 게시판이나 아래 댓글로 의견을 남겨 주세요!

최종 수정일:
서지스윈

서지스윈

IT와 기술을 이해하고, 유용한 소프트웨어를 발견하도록 돕고 싶습니다. 윈도우(Windows), 맥(macOS), 리눅스(Linux), 스마트폰 앱, 웹 서비스, 기획 시리즈물까지. 더 많은 것을 발견하고, 더 많은 것을 해보세요.