나스로 MariaDB, 워드프레스 구축했는데…
속도평가 사이트로 평가를 해봐도 전체적인 평가는 좋았습니다. 기존에 운영하던 티스토리에 비하면 비약적인 성능 향상을 확인할 수 있었습니다.


그러나 이상하게도 관리자 페이지에서 지연이 좀 있는 것 같더니 댓글 테스트를 해보는데 심각한 지연이 발생했습니다.
1. 원인과 해결 방안
처음에는 워드프레스 자체의 문제인 것으로 생각해서 WP-Optimize 플러그인을 설치해서 최적화를 시켰습니다. 그 후 사이트 로딩 속도에서 조금의 개선이 이뤄졌으나 아직도 댓글 등록 시 처리 속도는 전혀 변화가 없었습니다.
문제를 해결하기 위해 구글에서 검색을 하면서 여러 방식들을 적용해 보아도 이렇다 할 효과를 보지는 못했습니다.
그러다가 DB에서의 처리 속도 문제일 것이라는 글을 읽고 관련 해결 방법을 소개한 글을 읽다가 내 상황과 맞다고 생각이 되었습니다. 일단 그 블로그의 운영자는 나와 같은 문제를 가지고 있었고 해결했다고 합니다. 혹시 다른 곳에도 같은 내용의 참고 자료가 있을까 싶어서 찾아보니 다른 커뮤니티에서 비슷한 내용을 찾을 수 있었습니다.
MySQL 서버(MariaDB도 MySQL 베이스라 포함됨)는 외부로 부터 접속 요청을 받게 되면 인증 과정을 거친다고 합니다. 이 때 IP주소를 호스트네임으로 바꾸는 과정을 수행하기 때문에 접속시에 불필요한 데이터를 처리하게 되어 지연이 발생하게 됩니다.
해결책으로 skip-name-resolve를 설정하면 IP 기반으로 접속시에 호스트네임 확인(hostname loockup)과정을 생략하게 되므로 더 빠른 피드백을 받을 수 있습니다.
2. 개선 방안 ( 코딩 포함 )
먼저 시놀로지 나스에서 SSH를 활성화합니다. 제어판 > 터미널 및 SNMP > SSH 서비스 활성화를 체크하고 적용하면 됩니다.
다음은 SSH를 통해서 시놀로지 나스에 접속합니다. 저는 개인적으로 보기 편하다고 생각하는 마이크로소프트의 터미널을 이용해서 접속했습니다.
c:\> ssh 나스접속Id@나스IP -p 포트번호
비밀번호 입력:
$ sudo vi /var/packages/MariaDB10/etc/my.cnf
Bash아래의 내용을 입력 후 ESC키 누른뒤 :wq 입력하고 엔터를 눌러서 저장 후 나갑니다.
[myisamchk]
key_buffer_size=64M
sort_buffer_size=64M
[mysqld]
skip-host-cache
skip-name-resolve
max_connections = 500
innodb_buffer_pool_size=5102M
key_buffer=256M
key_buffer_size=256M
query_cache_limit=16M
query_cache_size=32M
max_allowed_packet=128M
thread_stack=192K
thread_cache_size=8
table_open_cache=128
sort_buffer_size=512K
read_buffer_size=512K
read_rnd_buffer_size=512K
ft_min_word_len=2
lower_case_table_names=1
Bashmy.cnf 파일을 새로 생성한 경우는 다음 명령어로 권한 설정을 해줍니다.
$ sudo chmod 600 /var/packages/MariaDB10/etc/my.cnf
BashMariaDB를 재시작 합니다.
$ sudo /var/packages/MariaDB10/scripts/start-stop-status restart
Bash저는 메모리 추가를 통해 나스에 총 18GB 메모리가 있어서 innodb_buffer_pool_size를 넉넉하게 설정했습니다.
이 부분은 메모리 용량 상태에 따라서 조절하실 것을 권장합니다.
3. 결론
지금 테스트 한지 3일가량 지났는데 속도 저하 없이 잘 작동하는 것을 확인 할 수 있었습니다.
출처
- https://www.synology.com : Synology NAS 에서 MariaDB 설정을 사용자 지정할 수 있습니까?
- https://kimcblog.com : DSM 7.0에서 MariaDB 10 설정
- http://ns.eartsquare.co.kr : [Synology] 시놀로지에서 운영중인 웹사이트의 반응이 늦을때(mysql, mariaDB)
- https://m.blog.naver.com/nawoo/221564976872 : [MySQL]skip-name-resolve