728x90
http://www.smallake.kr/?p=7709
위의 링크 원문에서 일부 발췌
원문제목은 "Linux환경에서 SSD 성능 최적화하기"
이처럼 SSD는 미리 블럭을 비워놓지 않으면, 쓰기작업을 할때 블럭을 비우는 작업을 해야하기 때문에 쓰기 성능이 떨어집니다. 이런 단점을 해결하기 위하여 운영체제가 한가할 때 삭제한다고 표시한 데이터를 미리 비워 두도록 하는 기능을 만들었고 이를 TRIM이라고 합니다. TRIM은 읽기와 무관하고 오직 쓰기와 관계합니다. 또한 SSD가 TRIM을 지원하여야 하고 OS도 지원하여야 합니다. Linux의 경우 TRIM을 활성화하려면 다음과 같이 명령어를 실행합니다.
1 2 3 4 5 6 7 8 9 10 | >>uname -a /* 커널 버전이 2.6.33 이상이면 TRIM을 지원합니다. */ >>hdparm -I /dev/sda * Data Set Management TRIM supported /* 드라이브가 TRIM을 지원하는지를 확인합니다. SSD가 /dev/sda1이라고 가정하고 명령어를 실행합니다. */ |
이제 TRIM을 OS와 SSD가 지원한다고 하면 File System을 Mount를 할 때 옵션을 추가해주어야 합니다.
1 2 3 4 5 | >>sudo vi /etc/fstab /*SSD의 드라이브를 'noatime,nodiratime,discard'로 변경*/ /dev/sda /ext4 noatime,nodiratime,discard,errors=remount-ro 0 1 |
그러면 현재 사용중인 Linux의 Scheduler가 무엇이고 어떻게 변경하는지 알아보겠습니다.
1 2 | # cat /sys/block/{DEVICE-NAME}/queue/scheduler # cat /sys/block/sda/queue/scheduler |
변경은 아래와 같이 합니다.
1 2 | # echo {SCHEDULER-NAME} > /sys/block/{DEVICE-NAME}/queue/scheduler # echo noop > /sys/block/hda/queue/scheduler |
====================================================================
hdparm으로 확인했는데 SSD가 trim을 지원하지 않는다면?
$ sudo fstrim / -v
와 같이 수동으로 할 수 있다. 그런데 막상 해보니까 한번에 0 bytes wre trimmed가 나오지 않아 몇번 반복해줘야 했다.
728x90
'Programming > linux왕초보' 카테고리의 다른 글
kernel make menuconfig error (0) | 2016.01.21 |
---|---|
Caching your GitHub password in Git (0) | 2016.01.08 |
Serial ports usage on Linux (0) | 2016.01.08 |
process 종료 (0) | 2015.05.28 |
fork (0) | 2015.05.26 |
fflush, fileno (0) | 2015.04.07 |
[Linux] stream write (0) | 2015.03.26 |
linux filesystem 사용 용량 확인 (0) | 2015.03.18 |
[Linux] Select and Poll (0) | 2015.01.27 |
Example syntax for Secure Copy (scp) : scp사용법 (0) | 2014.04.02 |