하나의 서버에 2개의 무들을 Bitnami 패키지를 이용하여 설치하면 문제가 생깁니다.

문제는 포트충돌 과 고유이름 충돌 때문인데

하나의 포트가 80 , 443 , 3306 이면 하나는 8080,444,3307 로 바꿔야합니다.


변경 위치는  


첫째. properties.ini 파일에서  

포트와 mysql_unique_service_name 와 apache_unique_service_name 의 이름을 바꾸어 주어야하며 


둘째. Bitnami\moodle-2.9.4-0\apache2\conf\bitnami\bitnami.conf 에서

각종 포트번호를 바꾸어 주어야합니다. 이 놈을 안바꿔서 굉장히 고생했네요 ;;

'무들 (moodle)' 카테고리의 다른 글

무들 강의 노트  (0) 2016.01.12
무들 성능 이슈 - MySQL  (0) 2015.12.17
잉콜 - 무들 퀴즈 메이커  (0) 2015.12.07
무들(moodle 2.9) - 퀴즈 임포트  (0) 2015.10.28
다섯가지 교육용 프리 MOOC 플랫폼 비교  (0) 2015.09.30


어떻게 무들 서버 성능을 향상 시키나? - MySQL


무들은 데이타 기반 어플리케이션입니다. 그래서 데이타베이스가 빠를수록, 무들 서비스 자체도 빨라지죠.  이번 포스트에서는 무들 데이타베이스 MySQL 에 촛점을 맞춰서 성능을 올리기위한 간단한 방법들을 살펴보도록 하겠습니다.  

먼저 데이타베이스를 파인튜닝한다는것은 매우 큰 토픽이라난걸 알아두시구요. 그 주제만을 다룬 책만해도 여러권이 있을 정도입니다. 따라서 이 포스트에서는 단지 가장 증대될만한 몇 부분에 촛점을 맞춰서 설명합니다.


왜 문제가 되나?

이전 포스트 (아파치 서버) 에서 설명한것 처럼 , 무들은 사용자가 요청하면 반응해서 동적으로 컨텐츠를 보여주는 형식입니다. 각각의 페이지가 생성되는 동안 , 무들은 데이터를 데이타베이스에서 읽어서 그 페이지에 써줍니다. 디스크상에 저장된 데이타들을 읽고/쓰는것은 매우 느린 행동들 입니다. 따라서 

스토리지가 빠를수록 무들은 빨라질겁니다. 나의 테스트서버는 매우 저렴한 가상 사설 서버이며, 디스크 I/O 는 매우 느립니다. 당신이 데이타베이스를 빠르게 만들 "비밀" 은 RAM 의 활용을 가능한 많이 하는것입니다. RAM은 디스크에 비해 비교도 안될만큼 빠르니깐요. 

무들 데이타베이스 사이즈 계산 

첫번째로 해야할것은 얼마나 많은 공간을 무들 데이터베이스가 사용하는지 체크하는것이다.

mysql - u root -p

mysql 콘솔로 들어가서  아래와 같이 입력하면 

SELECT table_schema "DB", sum(data_length + index_length)/1024/1024 "DB size in MB" FROM information_schema.TABLES GROUP BY table_schema;

아래와 비슷하게 출력될것입니다.

+--------------------+---------------+
| DB                 | DB size in MB |
+--------------------+---------------+
| information_schema |    0.00878906 |
| moodle             |  251.82812500 |
| mysql              |    0.65609837 |
| performance_schema |    0.00000000 |
| phpmyadmin         |    0.02246094 |
+--------------------+---------------+
5 rows in set (1.26 sec)

이 예에서 무들 데이타베이스는 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 가 있습니다.

sudo nano /etc/mysql/my.cnf

  • innodb_buffer_pool_size  로 검색해서 찾아봅니다. ( 리눅스던 윈도우던) 
innodb_buffer_pool_size = xxxM
  • 위에 xxxM 에 원하는 용량을 넣어보세요, 저는  305MB 로 하겠습니다.
  • 저장한후에 나와서 MySQL 서버를 재 시작하세요.
sudo service mysql restart<span style="text-align: justify;"> </span>

MySQL InnoDB Configuration file

Click to zoom in


보너스 -  진단툴 사용하기 


tuning-primer.sh 이나  mysqltuner.pl  같은 툴은 MySQL 서버를 더 나은 성능을 보장하는 옵티마이즈 할수 있게 도와줍니다. 이런툴은 MySQL 서버이 어떻게 사용되는지 당신에게 알려주며 그것을 토대로 설정등을 바꾸게 유도합니다. 


1. Tuning-primer.sh

  • 다음 코드를 SSH 윈도우에 복사/붙히기하시고 모든 라인에서 엔터를 누르세요.
wget http://www.day32.com/MySQL/tuning-primer.sh
cd /root/
chmod +x tuning-primer.sh
./tuning-primer.sh
  • 다음과 같은 결과를 얻을수 있을겁니다.

tuning-primer.sh results example

Click the image to zoom in

  • 붉은색의 부분을 볼 필요가 있으며, 어드바이스를  해줄겁니다.


2. Mysqltuner.pl

  • 다음 코드를 SSH 윈도우에 복사/붙히기하시고 모든 라인에서 엔터를 누르세요.
wget https://raw.github.com/rackerhacker/MySQLTuner-perl/master/mysqltuner.pl
cd /root/
chmod +x mysqltuner.pl
./mysqltuner.pl
  • 다음과 같은 결과를 얻을수 있을겁니다.

Mysqltuner.pl for Moodle

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/


잉글리쉬 콜 문제 -> 무들 퀴즈 변환 정리 




수능대비 




문제 타입 41   (수능대비)  / 1,7,8,9,13,17,24,26,40,41 


 스크립트 : 다음을 듣고, 질문에 알맞은 답을 고르세요.

 문제 : It lives in water. It swims very well. What is it?^ // 문제에 ^ 나 \r\n 를  <br> 로 대치

 선택 : 1. monkey^2. fish^3. dog^4. tiger^5. lion^     //  선택에  ^ 로 구분 


=> 무들 mulltichoice 로 변경 



 문제 타입 342   (수능대비) 


 스크립트 : 다음 물음에 알맞은 답을 고르세요.

 문제 : M: Did you enjoy the Vice President's speech?  // 문제에 ^ 나 \r\n 를  <br> 로 대치

 선택 : 


1. I enjoy giving a speech.   // 선택에 엔터 (\r\n)  로 구분 

2. Not at all. It was boring.

3. Yes, I do enjoy watching it.

4. No, he didn't enjoy it.

5. No,I enjoy the speech.


=> 무들 mulltichoice 로 변경 



타입 51,52,56,59,60 :  그림이 들어가는 객관식







토익토플





문제 타입 126 (토익토플) //  28 , 29,  30 , 124, 125, 126   (토익토플 모두 동일) 


 스크립트 : Listen to the part of a lecture and choose the best answer to each question.


 문제 : 

Reptiles and amphibians are often confused by people who believe that they are the same animals. These beliefs, however, are incorrect. There are many differences between the two of them.  Let's take a look at some of the key differences that exist between reptiles and amphibians. 

Q: Why is the professor discussing reptiles and amphibians?


 선택 : 

1. He is confused about them.  // 엔터 (\r\n) 로 구분 

2. He wants to compare them. 

3. He thinks they are the same. 

4. He doesn't know what to believe. 

5. He wants to learn the key differences.


=> 무들 mulltichoice 로 변경 




나머지 

문제에 ^ 나 \r\n 를  <br> 로 대치

선택에  ^  와  \r\n  로 구분 




무들에서 하나씩 문제를 생산하는 삽질대신해서, 대규모로 문제를 업로드시킬수있는 방법이 있습니다. 
무들은 그런 문제들을 질문은행으로 대규모 임포트하는데 사용될수있는 여러가지 포맷들을 지원합니다.
여기에서는 3가지 방법을 알아보겠습니다.

방법1. 간단한 Aiken format 을 사용하여 문제를 임포트하기. 이 방법은 오직 선다형에서만 사용할수있음.

스텝1.  원하는 문제를 Aiken format 으로 변경합니다. 그리고 .txt 파일로 저장합니다.



위는 Akien format 의 예입니다.  질문은 오직 한라인이어야만 합니다. 각각의 대답은 단일 문자로 시작되며,   .  or )  로 끝나구요. 공백하나 같은후에 답변이 이어집니다.   정답은 ANSWER: 로 시작하며 답변에 적절한 문자를 넣어줍니다.  너무 쉽긴한데  피드백을 어떻게 넣는지는 모르겠네요.  안되는거 같기도 하구요. 


스텝2.  무들 페이지로가서  강좌관리-질문은행-가져오기로 갑니다.

스텝3.  파일형식에서 Aiken 형식으로 선택해주고 , 파일에서 질문 가져오기에 해당 파일을 넣어주면 됩니다.

             (중간에 일반 설정은 별 영향을 미치지 않습니다) 



방법2.  선다형 문제 말고 다른게 필요하다면,  XML 로 퀴즈문제를 바꾸기위해 Moodle XML 컨버터를 이용할수있습니다. 그리고나서 XML 파일을 무들로 임포트하는것이죠.  


스텝1.  문제를 올바른 .txt  포맷으로 준비합니다. 만약 문제가  word 문서로 되있다면 , .txt 포맷으로 저장해줍니다.  

각각의 질문 타입은 아래의 예를 따릅니다.


multichoice 
1. When must a Post Implementation Review take place? 
A. after every Change 
B. at the request of the person who submitted the Change request 
C. in case of emergency changes 
D. if another incident of the same type occurs again after a Change has been made 
Answer: A 
feedback: Correct! The PIR must be a part of every change process. 

2. When an organization decides to control the flow of incident information within the IT organization, which ITIL process would it be putting in place? 
A) Availability Management 
B) Change Management 
C) Incident Management 
D) Problem Management 
Answer: C 
feed.1. Incorrect! 
feed.2. Another try! 
feed.3. Correct! 

essay 
3. Which activity is not the responsibility of IT Service Continuity Management? 
feed. write something 

shortanswer 
4. According to the Deming quality circle a number of steps must be performed repeatedly in order to ensure good performance. Specify the correct sequence for these steps. 
A. Act 
B. Check 
C. Do 
D. Plan 
Answer: DCBA 

truefalse 
5. Infrastructure Monitoring will provide support teams with alerts directly allowing for faster resolution. Such alerts do not need to be recorded in the Incident Management tool as there is little added value in this. Typically the incident will be resolved automatically before the customer recognises it. 
Answer: False 
feedback: False, it is good practice to automatically record the alert in the Incident Management tool and assign this directly to the support team concerned. 

description 
6. A Service Desk brings many benefits to an organization. Key to these is increased customer satisfaction & perception. Customers benefit from a single point of contact which prevents the need to chase organization teams for updates or resolutions etc. A service desk will be able to produce more accurate information for management, and ensure that support resources are more productively used. Successful implementation of changes is not a benefit determined by the Service Desk function. 

cloze 
7. Infrastructure {1:MULTICHOICE:=Monitoring~Controlling~Service} will provide support teams with alerts directly allowing for faster resolution. Such alerts do not need to be recorded in the Incident Management tool as there is little added value in this {1:MULTICHOICE:=true~false}. Typically the incident will be resolved automatically before the customer recognizes it. 

numerical 
8. How many days are there in May? Give answer only with number 
Answer: 31 


스텝2. Moodle XML converter 로 가서 위의 텍스트파일을 업로드하거나 input window 로 텍스트를 붙혀넣고

스텝3. Download XML 버튼을 클릭하고, XML 퀴즈파일을 데스크탑에 저장합니다.

스텝4.  무들 페이지로가서  강좌관리-질문은행-가져오기로 갑니다.

스텝5.  파일형식에서 Moodle XML  형식으로 선택해주고 , 파일에서 질문 가져오기에 해당 파일을 넣어주면 됩니다.




        



방법3.  무들에서 지원하는 아무 포맷에 맞춰서 올리면 됩니다. (파일이름에 한글있으면 안되는듯?)

개인적으로는  디비에 있는 문제를 가져와서 자동적으로 무들 xml 형식을 생성하는 임포트툴을 만들었습니다.

원래 DB and 원래 엑셀  ->  임포트툴  ->  무들XML  -> 무들서버 



자신만의 MOOCs (대규모 온라인 공개수업) 
을 찾는다면 아래

에 
흥미로운 다섯가지 플랫폼을 소개합니다.




2013년말, 많은 좋은 대학교들은 MOOC(massive open online course) 를 시작하고 제공해오고 있습니다. 지금부터 MOOC 프로덕트를 여러가지 관점에서 살펴볼겁니다.구글이나 테나리스같은 회사들은 MOOCs 를 그들의 직원을 트레이닝 시키기위해 사용하고 있으며, 몽고DB 는 개발자들을 MOOC 를 이용해서 교육하고있습니다. Udemy 같은곳에서는 수많은 개인강사들이 클래스를 가지고있습니다.
만약 당신이 MOOC 를 고려중이라면, 어떤 플랫폼을 선택할것인가가 첫번째로 해야할것입니다.
아래에 다섯가지 유명한 무료 MOOC 플랫폼을 살펴보도록 하겠습니다.



edX

Edx 는 edX.org 에서 제공하는 오픈소스 플랫폼이다. 100,000 명이 넘는 학생들에게 강좌를 제공하기 위해  MIT 나 하버드같은 대학교들이 사용하고있다. 2013년 3월에 오픈소스로 릴리즈되었으며 목적은 MOOC 플랫폼을 위한 워드프레스같은 것이다. 핵심 기능을 확장하기위한 플러그인들을 제공하며, edX 는  빠르고 모던한  UI 를 가지고있고 많은 수의 학생들을 참여시킬수있는 능력이 있다. 

edX 는 모던하며,유연하고, 강력한 코스매니지먼트플랫폼을 구성하는데 적합하다. 

Moodle

무들은 오픈소스학습매니지먼트 시스템이다.(LMS) 이것은 사용자에게 온라인 코스들을 제공하고 빌드할수있게 해준다. MOOCs 보다는 다소 전통적인 클래스룸의 형태를 취한다.
edX 보다는 인스톨하기 훨씬 쉬우며,  원클릭 인스톨옵션도 활용가능하다.

무들은 많은 기능들을 사용자가 입맛에 맞춰서 꾸밀때 좋으며,  edX 보다 더 많은 교육용도구를 제공한다. (퀴즈,완전학습,평가,분석 뭐 이런) 

다소 단점이라고 볼수있는건 10년이 넘은 오래된 플랫폼이란건데, 많은 활용가능한 옵션들과 플러그인들이 상쇄시켜줄것이다. 


CourseSites by Blackboard

블랙보드에 의해서 만들어진 코스사이트는 굉장히 강력한 플랫폼이다. 무들이 가지고 있는 확장성있는 티칭 툴들 및 리포팅 과 SCORM (공유가능 컨텐츠 객체참조모형)과 같은 대부분의 모습들을 가지고있다. 또한 클라우드 베이스이며 당신은 몇분안에 하나의 코스를 세팅할수도있고, 유지보수 및 업그레이드에 많은 걱정을 할 필요가 없다.

서비스는 5 라이브코스까지 무료이다. 단점은 블랙보드 로고가 박힌다는 점이며 당신의 학생들은 코스에 가입하기위하여 블랙보드에 등록되야한다. 

코스사이트는 개인들을 위해서 좋은 옵션이 있다. - 예를들어 온라인포맷으로 커리큘럼의 일부를 이주시키길 원하는 선생님 - 또는 온라인 코스를 실험적으로 시작해보려는 조직등..

최저의 유지비용을 가지고 많은 형태의 서비스를 제공하는것에서 코스사이트는 좋은 옵션이다.


Udemy (free version)

Think of it as the YouTube of MOOCs. Instructors can build and host their own courses on the platform and then offer them to users for free or for a fee.

Udemy is for individuals who want to easily build basic courses and monetize them. The platform is full of coders, photographers, designers and other specialists who offer their knowledge in the form of an online course. Udemy’s most distinct strength is its base of 2,000,000 registered students. When you build a course on Udemy, you are able to reach this pool of potential students.

Versal (free version)

Versal is an intriguing new platform. Its major strengths are a sleek, intuitive user interface and a robust drag-and-drop functionality. A user can sign up for free and then build a course that includes mathematical expressions, image drill-downs and many more widgets, all without any coding knowledge. Users can also embed their published courses on other websites, such as personal blogs.

Versal can’t fairly be called a MOOC platform, because it lacks certain MOOC elements. In particular, there is currently no forum or discussion functionality. Instead, it can be thought of as a strong tutorial platform.

Versal is most suited to individuals who want to quickly build sleek tutorials — for example, a teacher who builds an assignment for his students, or a musician who builds a short course on music theory and posts it on his or her blog. Versal is a young product, and the company is planning to develop some of the features that its platform currently lacks. This is one to keep an eye on.

Which platform you choose depends on what assumptions you make about your course. Most of these platforms offer demos on their site. It helps to be able to play around in a course and try to imagine your content with a similar look and feel. Finally, don’t worry about changing your mind early on. These platforms all rely on much of the same content (YouTube videos, PDFs, quizzes, etc), so it is easy to migrate a course halfway through the building process.




번역 : http://www.edtechmagazine.com/higher/article/2014/02/comparison-five-free-mooc-platforms-educators





소개는 학생이 퀴즈를 풀기전에 알아두어야할것들에 대한 이해를 도와주는 설명이 들어갈 수 있습니다.  







기본적으로 시간제한 및 시작/종료 날짜가 세팅 안되있지만 설정가능합니다.




퀴즈를 통과하기 위한 성적을 결정하며, 퀴즈를 몇번 되풀이해서 풀게하나 및 채점방법입니다.




한 페이지당 퀴즈가 몇개 보여질지 결정합니다.




- 퀴즈를 순서대로 보여줄것인지, 뒤섞을것인지.

- 지연된 피드백 선택하면, 문제 다 풀고나서 피드백 보여진다.




- 적응 모드:  각 질문에 여러번 응할수 있게함. (학생의 답안이 틀렸을때 메세지를 표시하고 틀린 질문을 다시 보여줄지 / 다른 질문을 보여줄지여부 : 전체 퀴즈를 다시 풀게하는 Attemps allowed 와 다르다) 

각 시도는 마지막 시도에 누적됩니다 : 이거 예로 하면 매번 시도했던 내용들이 바로 전에 시도했던 결과와 취합되어 표시되며, (이전에 0점 맞았는데 이번에 답을 맞추면 점수를 높혀줌) 학생은 이전에 시도했던 답변의 내용과 얻은 점수를 보게된다. 


"각 시도는 마지막 시도에 누적됩니다" 설정은 퀴즈를 평가의 도구가 아닌 가르치기 위한 도구로 사용할때 특히 유용하다. Attempts allowed 설정은 학생이 퀴즈를 계속 다시 풀 수 있게하고, 이 설정은 처음 시도할 때부터 이후의 시도까지 답변을 유지하므로, 두 가지 설정을 같이 사용하면 학생이 문제를 맞출 때까지 계속 재시도가 가능한 퀴즈를 생성할 수 있어서 퀴즈를 평가의 도구에서 가르치는 도구로 전환한다.






- 학생이 자신이 푼 퀴즈를 검토할 때 보게 될 정보를 결정한다.

                             - 시도중에 :  이거 선택하면 문제 푸는 도중에 피드백을 받을수있고, 정답확인할수있다.

                            -  위에 질문작동에 종속되어 작동한다. 지연된 피드백이 선택되면 시도중에가 무용지물





                              퀴즈창에 학생의 프로필사진 및 이름 표시, 감독관이 학생신분을  확인할수있게함



여러번 풀때 시간간격 및 비밀번호를 알아야 퀴즈를 풀수있게 함 



                                         등급 변화에 따른 전반적인 피드백  (퀴즈별 피드백은 따로 있다) 


  - 학생이 퀴즈를 볼수있게/없게한다.

  - 학생들 각자가 퀴즈를 풀기 때문에 퀴즈 모둠 설정의 실제 사용은 퀴즈결과블록에 모둠의 최고 점수를 표시하는것 외에는 없다.


레퍼런스:

- Moodle 2.0 이러닝 강좌 개발 책 참조 -


   서울대에서 무들 사용법에 대해서 동영상으로 공개해놨습니다. 

   http://etl.snu.ac.kr/snuhtml/manual.php  요기 가시면 동영상 메뉴얼을 보실수있습니다.



+ Recent posts