2008-09-20 6 views
7

단일 상자에 램프 스택을 설치하거나 MySQL을 자체 상자로 옮기는 데 많은 정보가 있지만 그 이상으로 성장하는 것은 잘 설명되어 있지 않습니다.이상적인 다중 서버 램프 환경

병목, 보안,

내가 현재 약 호스트를 결정하는, 나의 현재 웹 환경은 용량 문제가있다, 그래서 나는 구성 조정에 대한 모범 사례를 찾고 있어요 이중화 및 보안에 대한 공정한 필요성으로 인해 400 개 사이트가 있으므로 단일 박스 솔루션 이상으로 성장했지만 전체 ISP 또는 전용 웹 호스팅 회사 수준은 아닙니다.

보안 및 향후 확장을 고려하여 누구든지 위대한 Apache 웹 팜을 설정하는 데 관한 전문 지식이 어느 정도 있습니까? 전문 지식이 있습니까?

내 웹 환경은 2 개의 이중화 MySQL 서버, 2 개의 이중화 된 웹 컨텐츠 서버, nfs를 통해 컨텐츠를 마운트하는 두 개의로드 밸런싱 프론트 엔드 apache 서버로 구성되며 그 사이에 아파치 구성 및 세션 디렉토리를 공유하고 단일 "개발자 "서버는 nfs를 통해 웹 콘텐츠를 탑재하고 모든 개발자 계정을 포함합니다.

나는이 설정을 많이 해줘서 기쁘다.하지만로드가 조급하게 질식하는 것 같습니다.

감사합니다.

--UPDATE--

밖으로 끕니다 내가 MySQL 데이터베이스에 내 아파치 로그를 보내는 데 사용할 mod_log_sql 관련이있다 "부하에 질식". 웹 서버를 다시 구성하여 SQL 문을 디스크 파일에 작성한 다음 데이터베이스 서버에 제출하는 별도의 프로세스를 작성하면 웹 서버가 스레드를 훨씬 빨리 확보하고 훨씬 많은 작업을 처리 할 수 ​​있습니다.

+0

"이상적인 중간 수준의 램프 환경"과 같은 제목을 바꿀 것입니다. – givanse

답변

2

교과서 방식은 실제 경험적 데이터로 병목 현상을 식별하는 것입니다.

database, apache, network, cpu, memory, io입니까? sharding (+)이 더 필요합니까, 전체 테이블 스캔을 수행하는 DiskIO, NFS 네트워크로드, CPU입니까?

문제가있는 곳을 발견하면 코드의 작동 방식으로 인해 인프라 스트럭처를 확장하기에 충분하지 않은 문제가 발생할 수 있으며 더 많은 인스턴스를 만들거나 현재 설정을 변경하거나 코드를 다르게 지정하십시오.

+0

기타 링크 : http://www.slideshare.net/Jakobo/scaling-lamp-stacks/ – svrist

+0

http : //www.scribd. co.kr/doc/272292/How-Digg-Com-Use-the-LAMP-scale-to-scale-upward – svrist

3

병목 현상을 식별하고 개선 사항을 테스트 할 수 있어야합니다.

병목 현상을 식별하려면 시스템의보고 도구를 사용해야합니다. 몇 가지 예 :

  • MySQL의 쿼리 로그가 느립니다.
  • 리눅스는 부하 평균, iostat, vmstat, netstat 등과 같은 통계를 제공합니다.
  • 아파치는 액세스 로그와 서버 상태 페이지를 가지고 있습니다.
  • 프로그래밍 언어에는 Pear Benchmark과 같은 프로파일 러가 있습니다.

가장 느리고 가장 큰 범죄자를 식별하고 집중하는 데이 도구를 사용하십시오. 성능을 실제로 향상시킬 수 있는지 개선하고 측정하십시오.

복잡한 시스템에는 항상 빠를 수 있고 시스템이 커질수록 항상 다른 기능이 느려지 게됩니다.

시스템에 대한 설명에 따르면 NFS 서버에서 디스크 io와 네트워크 io가 가장 먼저 발생하고 MySQL 쿼리 시간을 살펴 보겠습니다. 또한 공유 세션의 성능을 확인합니다.

0

확장 성의 측면에서 첫 번째 단계로 추천 할만한 점은 Edgecast와 같은 CDN에 콘텐츠의로드를 줄이는 것입니다. 현재 두 개의 컨텐츠 서버를 추가 웹 서버로 사용하십시오.