2011-03-23 3 views
0

최근 루비 레일 응용 프로그램이 2.3.8로 업그레이드되었습니다. 업그레이드 도중 잡종/잡종 송이를 Phusion Passenger로 교체했습니다.승객과 관련된 문제

응용 프로그램을 배포하려고 할 때마다 처음에는 응답 속도가 더 빠르지 만 응답 시간은 점차 증가합니다. 또한 데이터베이스 상자에서 CPU 사용량이 400 %로 증가하고 글로벌 대기열에서 대기중인 요청이 많음을 확인했습니다. 이것은 우리의 프로덕션 환경에서만 발생하는 것 같습니다.

누구든지 내가이 문제를 디버깅하는 방법에 대해 알려줄 수 있습니까?

어쨌든 승객과 DB 간의 연결 수를 제한 할 수 있습니까?

승객에게 연결 풀링을 설정할 수있는 방법이 있습니까?

감사합니다.
Sivakumar.

답변

1

나는 Passenger에 문제가 있다고 생각하지 않습니다. DB 박스 CPU에 큰 스파이크가 있다면 문제가있을 것입니다. 데이터베이스에 대한 자세한 정보가 없으면 그것은 당신에게 세부 사항을 제공하기 힘들지만, 여기 당신이 시도 할 수있는 몇 가지 있습니다 :

  1. 실행 top 얼마나 많은 총 메모리의 mysqld를 다른 데이터베이스 프로세스가 소모됩니다 확인은. 이 금액이 높지 않으면 DB 상자의 RAM을 활용하기 위해 MySQL 설정을 조정해야합니다.
  2. mytop 명령을 사용하여 실행중인 데이터베이스 쿼리를 분석하십시오. 시스템 리소스를 모두 차지하거나 많은 스와핑을 유발하는 쿼리가있을 수 있습니다.
  3. MySQL의 느린 로그를보고 1 초 이상 걸리는 쿼리가 있는지 확인하십시오.
  4. 데이터베이스 엔진을 확인하십시오. MYISAM 및/또는 InnoDB를 사용하고 있습니까? 데이터베이스를 다르게 조정해야 각 엔진에 적절한 양의 메모리와 자원을 할당 할 수 있습니다.
  5. DBA에게 문의하십시오. 그들은 귀하의 사용 및 응용 프로그램을 살펴보고 문제가 데이터베이스 또는 응용 프로그램에있는 경우 더 명확하게 알려줄 것입니다.

P.S : 나는 여객 3로 업그레이드를 추천 할 것입니다, 그것은 승객 3.0.x와 두 번째

+0

I 업그레이드 Passenter 2보다 성능이 –

+0

우리는 이미 승객 3 명을 이용하고 있습니다. 우리는 각 기계가 여객 45 명을 보유한 6 대의 기계에서 응용 프로그램을 실행하고 있습니다. 그래서 270 개의 연결이 총망라되어 있습니다. 이것이 왜 mysql이 CPU를 호깅하는 이유 일까? MySQL의 연결 수를 제한하는 것은 어쨌든 도움이됩니까? – Sivakumar

+0

확실히 말할 수는 없지만 먼저 대답에 나와있는 단계를 확인하는 것이 좋습니다. 승객 45 명은 단일 기계로는 많은 것처럼 보이지만, 처리 할 수 ​​있다면 더 많은 힘을 얻을 수 있습니다. 당신은 여는 데몬을 제한 할 수 있습니다. –