작은숲:위키노트/리눅스에서 SSD 성능 최적화

큰숲백과, 나무를 보지 말고 큰 숲을 보라.

이 문서는 리눅스에서 SSD의 성능을 최대한 끌어 올리기 위한 설정에 대한 글이다. 우선 커널 버전과 파일 시스템 확인한다. 보통 ext4 파일 시스템 사용한다.

# uname -a
Linux red 2.6.32-573.8.1.el6.x86_64 #1 SMP Tue Nov 10 18:01:38 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/fstab
...
UUID=9808c92b-3995-4491-b7bb-fd5c575d422a /                       ext4    defaults        1 1

TRIM 기능 활성화 되어 있는지 확인한다.

# hdparm -I /dev/sda
...
    * Data Set Management TRIM supported
...

파일 시스템 마운트 옵션을 설정한다.

# mount
/dev/sda3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
# vi  /etc/fstab
...
UUID=9808c92b-3995-4491-b7bb-fd5c575d422a /                     ext4    defaults,relatime,discard,errors=remount-ro    1 1
UUID=7f7b8c01-3f80-437a-a7d5-c2c6508d5631 /boot                 ext4    defaults,discard        1 2
UUID=adaa86e8-c4ad-4eef-9721-f22ec79f0525 swap                  swap    defaults,discard        0 0
...
# mount -oremount /dev/sda1
# mount -oremount /dev/sda3
# mount
/dev/sda3 on / type ext4 (rw,relatime,discard,errors=remount-ro)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw,discard)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

가급적 스왑의 사용을 줄인다. 메모리만 충분하다면 스왑은 쓰지 않을 수록 좋다. CentOS의 기본값은 60.

# cat /proc/sys/vm/swappiness
60
# echo 1 > /proc/sys/vm/swappiness

부팅할 때마다 적용될 수 있도록 /etc/rc.local 파일에 swappiness 설정을 추가한다.

# vi /etc/rc.local
...
echo 1 > /proc/sys/vm/swappiness

디스크 스케쥴러를 확인한다. SSD에는 noop 스케쥴러를 쓰는 것이 좋다.

# cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq]
# echo noop > /sys/block/sda/queue/scheduler
# cat /sys/block/sda/queue/scheduler
[noop] anticipatory deadline cfq

참고 자료

이 작은숲 문서의 출처는 위키노트의 위키노트/리눅스에서 SSD 성능 최적화 문서입니다.