[꿀팁] 고전적 리눅스 튜닝 - 파일 시스템 마운트 옵션으로 성능 개선하기
#noatime #remount #fstab
20년 전 부터 사용했던 파일 시스템 마운트 옵션으로 성능 개선하는 방법을 소개 합니다.
요즘 세대가 바뀌면서 "예전에는 말이야 "의 의미가 무의미 할 정도가 되었습니다.
이미 컴퓨터의 CPU, Memory, Disk의 용량이 대략 20년 사이 1천배는 빨라졌습니다.
그래서 리눅스 튜닝이라는 말은 필요 없을 정도가 되었고, 더불어 클라우드로 전환 되면서 커널 튜닝을 생각하지 않아도 되는 경우도 많아 졌습니다.
또한 고속의 SSD 와 같은 메모리 디스크의 도입으로 이러한 디스크의 튜닝도 사실 의미 없다고 보는듯 합니다.
그러나 가상화나 Virtual Box 와 같은 가상 머신을 쓴다면 이런 것을 다시 고민해 볼만도 합니다.
* 디스크 I/O를 조금이라도 줄이기 위해서 많이 사용한 파일 시스템 마운트 옵션이라면
noatime, nodirtime 을 파일시스템 마운트 옵션으로 설정하여 성능 개선을 할 수 있습니다.
파일시스템은 3가지의 시간을 관리합니다.
1) ctime(create time): 생성된 시간
2)mtime(modify time): 수정된 시간
3)atime(access time): 마지막 읽은 시간
( access는 fopen 으로 읽는 경우를 말합니다)
위의 내용은 stat 이라는 명령으로 확인이 가능합니다.
stat filename
* noatime 은 시스템이 파일을 읽을때 마다 파일 상태 정보의 access time 값을 수정하게 되는데 많은 파일을 읽고 쓰는 경우 이부분을 중지 하는 것입니다.
* nodirtime도 파일과 마찬가지로 디렉토리를 access 할때마다 갱신되는 상태값을 중지합니다.
다만 파일시스템의 create time, modify time은 유지가 되므로 중지하더라도 파일 수정된 날짜는 변경이 되므로 문제가 없습니다.
리눅스가 기동되면서 파일 시스템 마운트에 사용되는 /etc/fstab 환경 파일을 아래와 같이 수정하면 간단히 적용 할 수 있습니다.
(다만 fstab은 수정후 리부팅시 적용 되므로, remount를 별도로 해야 적용 됩니다)
1
2
3
4
|
# /etc/fstab
# Created by anaconda on Thu Apr 23 09:44:55 2020
/dev/sda3 / xfs defaults,noatime 0 0
/dev/sda1 /boot ext4 defaults,noatime 1 2
|
cs |
* 파일 시스템이 사용중이 상태에서도 "remount" 마운트 옵션으로 수정 할수 있습니다.
mount -o remount [ 마운트 포인트 명] 을 쓰면 파일 시스템 마운트 옵션을 수정 할 수 있었습니다.
1
2
3
4
5
6
7
8
9
10
|
[root@work]# cat /proc/mounts | grep /dev/sda
/dev/sda3 / xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
/dev/sda1 /boot ext4 rw,seclabel,relatime 0 0
[root@work]# mount -o remount /
[root@work]# mount -o remount /boot
[root@work]# cat /proc/mounts | grep /dev/sda
/dev/sda3 / xfs rw,seclabel,noatime,attr2,inode64,noquota 0 0
/dev/sda1 /boot ext4 rw,seclabel,noatime 0 0
|
cs |
위와 같이 파일 시스템의 마운트 정보는 /proc/mounts 파일을 통해서도 확인이 가능한데
/proc/mounts는 시스템에 마운트시 적용된 옵션 속성을 확인할 수 있습니다.
remount 와 noatime 옵션을 꼭 기억 바랍니다.
'InfraPlatform' 카테고리의 다른 글
리눅스 VirtualBox Guest Addition설치와 VBoxLinuxAdditions.run 설치오류 해결 (0) | 2020.10.22 |
---|---|
[꿀팁] 리눅스 콘솔에서 한글 깨짐 해결 - localectl (0) | 2020.08.05 |
[꿀팁] Centos 8에서 표준시간 설정하는 방법 (NTP, rdate, chronyd,timedatectl) (0) | 2020.08.04 |
[Shell-Script] 여러 데몬으로 동시에 기동하는 스크립트 만들기 (0) | 2020.06.28 |
kubernetis 설치 Centos 8 (0) | 2020.06.21 |
Rancher를 사용하여 Kubernetes 클러스터를 설정하는 방법 (0) | 2020.04.25 |
CentOS에 Docker 시작하기 - Engine 설치 (0) | 2020.04.24 |