일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 하이브리드앱
- 플레이프레임워크
- 스칼라 강좌
- Akka
- 파이썬 동시성
- 파이썬
- 파이썬 머신러닝
- 스위프트
- Golang
- hyperledger fabric
- 스칼라 동시성
- Play2
- 엔터프라이즈 블록체인
- akka 강좌
- 블록체인
- CORDA
- 주키퍼
- 이더리움
- 안드로이드 웹뷰
- Adapter 패턴
- Play2 로 웹 개발
- 파이썬 강좌
- Actor
- 하이퍼레저 패브릭
- 스칼라
- play2 강좌
- play 강좌
- 그라파나
- Hyperledger fabric gossip protocol
- 파이썬 데이터분석
- Today
- Total
HAMA 블로그
무들 성능 이슈 - MySQL 본문
어떻게 무들 서버 성능을 향상 시키나? - MySQL
무들은 데이타 기반 어플리케이션입니다. 그래서 데이타베이스가 빠를수록, 무들 서비스 자체도 빨라지죠. 이번 포스트에서는 무들 데이타베이스 MySQL 에 촛점을 맞춰서 성능을 올리기위한 간단한 방법들을 살펴보도록 하겠습니다.
먼저 데이타베이스를 파인튜닝한다는것은 매우 큰 토픽이라난걸 알아두시구요. 그 주제만을 다룬 책만해도 여러권이 있을 정도입니다. 따라서 이 포스트에서는 단지 가장 증대될만한 몇 부분에 촛점을 맞춰서 설명합니다.
왜 문제가 되나?
이전 포스트 (아파치 서버) 에서 설명한것 처럼 , 무들은 사용자가 요청하면 반응해서 동적으로 컨텐츠를 보여주는 형식입니다. 각각의 페이지가 생성되는 동안 , 무들은 데이터를 데이타베이스에서 읽어서 그 페이지에 써줍니다. 디스크상에 저장된 데이타들을 읽고/쓰는것은 매우 느린 행동들 입니다. 따라서
스토리지가 빠를수록 무들은 빨라질겁니다. 나의 테스트서버는 매우 저렴한 가상 사설 서버이며, 디스크 I/O 는 매우 느립니다. 당신이 데이타베이스를 빠르게 만들 "비밀" 은 RAM 의 활용을 가능한 많이 하는것입니다. RAM은 디스크에 비해 비교도 안될만큼 빠르니깐요.
무들 데이타베이스 사이즈 계산
첫번째로 해야할것은 얼마나 많은 공간을 무들 데이터베이스가 사용하는지 체크하는것이다.
mysql 콘솔로 들어가서 아래와 같이 입력하면
아래와 비슷하게 출력될것입니다.
이 예에서 무들 데이타베이스는 250MB 의 공간을 가지고있습니다. (이것을 체크해두세요 나중에 필요)
innodb_buffer_pool_size 를 계산해보자
이 옵션은 당신의 무들 성능에 가장 큰 임팩트를 주기 쉬운데, 간단히 말해서 얼마나 많이 RAM 에
데이터를 저장되게 할것인가 라는 겁니다. (스토리지가 아니라요~)
- 당신의 데이타베이스는 점점 커지기때문에 여분의 공간도 점점더 늘어나야하는데 , 한달에 한번정도는 확인을해서 innodb_buffer_pool_size 를 조절해야합니다.
- 너무 많이 설정해서 낭비하면 안되며, 적절하게 10% 정도 추가하면 좋습니다.
예를들면 :
- 252MB + (10% of 252MB) = 277MB
- 277MB + (10% of 277MB) = 305MB
이 예에서 나는 innodb_buffer_pool_size 를 305MB 로 세팅하였습니다.
innodb_buffer_pool_size 항목값에서 MySQL의 임시 기억 공간인 버퍼 풀 메모리 크기를 지정한다. 이 값으로 전체 메모리의 50~80%를 권하기도 하지만, 메모리가 넉넉하지 않은 환경이라면 이 값을 20% 이하로 줄여야 할 때도 있다. 버퍼 풀 메모리가 너무 크면 하드디스크를 가상 메모리로 쓰는 작업(스와핑)이 일어나 매우 느려지는 원인이 될 수 있기 때문이다.
참고 : http://pat.im/1033
‘my.cnf’ 파일 설정하기
'my.cnf' 파일에 설정을 해보겠습니다. (여긴 리눅스로 설명되있슴)
윈도우에 MoodleWindowsInstaller-latest-29 로 설치한 무들에는 moodle\server\mysql\bin 폴더에 my.ini 가 있습니다.
- innodb_buffer_pool_size 로 검색해서 찾아봅니다. ( 리눅스던 윈도우던)
- 위에 xxxM 에 원하는 용량을 넣어보세요, 저는 305MB 로 하겠습니다.
- 저장한후에 나와서 MySQL 서버를 재 시작하세요.
Click to zoom in
보너스 - 진단툴 사용하기
tuning-primer.sh 이나 mysqltuner.pl 같은 툴은 MySQL 서버를 더 나은 성능을 보장하는 옵티마이즈 할수 있게 도와줍니다. 이런툴은 MySQL 서버이 어떻게 사용되는지 당신에게 알려주며 그것을 토대로 설정등을 바꾸게 유도합니다.
1. Tuning-primer.sh
- 다음 코드를 SSH 윈도우에 복사/붙히기하시고 모든 라인에서 엔터를 누르세요.
- 다음과 같은 결과를 얻을수 있을겁니다.
Click the image to zoom in
- 붉은색의 부분을 볼 필요가 있으며, 어드바이스를 해줄겁니다.
2. Mysqltuner.pl
- 다음 코드를 SSH 윈도우에 복사/붙히기하시고 모든 라인에서 엔터를 누르세요.
- 다음과 같은 결과를 얻을수 있을겁니다.
Click the image to zoom in
- [!!] 표시되는부분을 유심히 보셔야하며 , ‘Recommendations’ 섹션도 참고하세요.
무들 아파치 성능 이슈
http://www.iteachwithmoodle.com/2014/01/20/optimizing-a-moodle-server-step-1-fine-tune-apache/
무들 MySQL 성능 이슈
http://www.iteachwithmoodle.com/2014/01/21/how-to-optimize-a-moodle-server-part-2-mysql/
'무들 (moodle) ' 카테고리의 다른 글
하나의 서버에 2개의 무들 설치하기 (0) | 2016.03.10 |
---|---|
무들 강의 노트 (0) | 2016.01.12 |
잉콜 - 무들 퀴즈 메이커 (0) | 2015.12.07 |
무들(moodle 2.9) - 퀴즈 임포트 (0) | 2015.10.28 |
다섯가지 교육용 프리 MOOC 플랫폼 비교 (0) | 2015.09.30 |