2012-02-21 6 views
0

저는 프로덕션 시스템 (Moodle)을위한 가상 환경을 계획하는 초기 단계에 있습니다. 레이어는 비교적 간단하다 :가상화 된 환경 계획

웹 - 아파치 2.2 데이터베이스 - 5 PHP 5.2

내 질문 MySQL은 이것이다, phycsical 서버 사이에 위의 레이어를 배포하기위한 일반적으로 인정 된 방법은 무엇인가? 이 경우 실제 서버가 2 대있을 예정입니다. 내 웹 서버 클러스터를 하나의 실제 서버 및 데이터베이스 클러스터에 유지해야합니까? 또는 실패 할 경우를 대비하여 두 서버에서 전체 스택을 복제 할 수 있습니까? 이것에 대한 통찰력은 나에게 큰 도움이 될 것입니다.

감사합니다. 캐 틀입니다.

답변

0

우리는 별도의 (가상) 서버를 사용하지만 오버 헤드가 작고 확장/축소를 원하는 경우 유연성을 허용하기 때문에 각각 별도의 스택을 유지 관리합니다. 그러나 이것은 하나의 서버가 망가져 웹에 액세스 할 수없는 경우 유용 할 수있는 대체 서버가되기 위해 서버에서 데이터를 가져올 수 없으며 두 번째 서버로 데이터를 가져올 수 없으므로 대체 할 수 없습니다. 대체 백업에는 적절한 백업을 사용하고 정기적으로 복원하는 연습을하십시오.

무들은 일반적으로 DB 쪽보다는 PHP 쪽을 차단하고 약 3.5 : 1의 PHP를 보게됩니다 : PHP는 별도의 컴퓨터에있을 때 MySQL CPU를로드합니다. 이를 염두에두고, 한 서버의 최대 용량이 무엇인지 고려해야합니다. 시스템간에 네트워크 오버 헤드가 전혀없는 경우 최상의 성능을 얻을 수 있으므로 더 큽니다. 당신이 그것을 할 수 없다면, 2 VMS를 만드십시오. 하나는 PHP를위한 것이고 다른 하나는 MySQL을위한 것입니다. 가장 좋은 옵션이지만, 특정 설정을위한 부하 하에서 차이점을 벤치마킹하십시오. (Apache JMeter을 사용하십시오).

우리의 가장 큰 설치는 70,000 명의 사용자를 포함하며 우리는 하나의 PHP와 하나의 MySQL을위한 4 개의 CPU/8GB VM을 가지고 있습니다 (DB는 거의 30 % CPU를 넘지 않습니다). Apache를 통해 약 400 개의 동시 연결이 가능합니다. 그러나 우리는 대규모 VM을 사용하고 있으며 2 ~ 16 개의 CPU 사이에서 쉽게 확장 및 축소 할 수 있으므로 융통성을 원할 경우 하나의 괴물 기계를 고려할 수 있습니다.

무들 성능에 대한 더 자세한 정보는 here, 특히 '확장 성'아래를보십시오.