mariaDB-Optimization and Tuning(OS)

1. Configuring Swappiness

Why to avoid swapping

  • mariaDB는 메모리가 스왑되지 않았다고 가정한다. 만약 swap이 발생한 상태라면 단순히 최초 access로 disk에서 로딩하는 것보다 성능에 더 좋지 않은 영향을 미친다.

 

스와핑을 피할 수 있는 가장 좋은 방법은 충분한 RAM을 확보하는 것이다. 시스템 변수를 너무 높게 잡으면 서버의 메모리가 부족해지면서 스왑을 일으킬 수도 있게 된다. 따라서 어떤 셋팅 값을 사용할 것인지, 이것이 메모리에 어떤 영향을 미칠지 이해하는 것이 매우 중요하다.

Setting swappiness on Linux

리눅스는 swappiness 라는 셋팅값을 가지고 있는데 이것은 RAM에서 하드디스크에 존재하는 스왑영역으로 스왑하는 정도를 의미한다. 0부터 100까지 설정이 가능하며 낮은 값은 잘 스왑하지 않는 다는 의미이다. 기본 값은 60이며 아래 커맨드로 확인해 볼 수 있다.

sysctl vm.swappiness

이 기본값은 서버로 하여금 스왑하도록 권장하고 있다고 볼 수 있다. 왠만해선 MariaDB에서 스왑하는 상황을 원치 않을 것이므로 이 값을 0으로 하는 것이 좋다. sysctl.conf 파일을  (대부분 /etc/sysctl.conf에 존재) 아래와 같이 swappniess를 0으로 만드는 설정을 추가하면 된다.

vm.swappiness = 0

/etc/sysctl.conf 파일에 적용하는 것은 리부팅 이후에도 지속된다.

데이터베이스 워크로드에는 낮은 수준의 swappiness를 추천한다. mariaDB 데이터베이스에 대해서 이 값을 1로 설정하는 것을 추천한다.

vm.swappiness = 1

 

Disabling swap altogether

스와핑을 완전히 비활성화 함으로써 데이터베이스 프로세스가 스와핑되는 것을 원천봉쇄하고자 하는 유혹이 있을 것이다. 그러나 조금의 스왑 기능을 남겨놓아야 실행중인 프로세스가 kill 되는 상황을 방지할 수 있다.

 

2. Filesystem Optimizations

Which filesystem is best?

사실 MariaDB 성능에 있어서 파일시스템은 중요한 포인트가 아니다. RAM이나 Disk drive의 속도, 시스템 변수의 셋팅이 더 중요하다고 볼 수 있다.

그러나 파일시스템의 최적화에 따라 큰 차이를 보일 수도 있다. 현재 리눅스 파일시스템 중 가장 훌륭한 성능을 보이는 것은 ext4와 XFS, Btrfs 이다. 이들은 모두 리눅스 커널에 포함돼있고 대부분의 리눅스 배포판에서 사용 가능하다. (Redhat제품에서 Brtfs는 미리 보기만 가능하고 아직 운영환경에 사용할 수 있는 준비는 되지 않음)

 

 

 

 

댓글 남기기