2012-11-14 3 views
2

propel을 PHP와 ORM으로 사용하는 Amazon RDS 데이터베이스에 많은 수의 conncurrent 연결에 문제가 있습니다. 응용 프로그램은 한 번에 열린 20 ~ 50 연결이 부하 테스트 동안 잘 실행 후 거의 즉시 최대 연결에, 버섯 벽을 칠 것, 그리고 모든 죽는다.Propel 및 영구 연결

나는 Propel이 mysql_pconnect를 사용하고 있다고 믿는다. 그러나 그것을 지정하는 곳이나 그것을 끌 수있는 간단한 방법을 찾을 수 없다. 여기 붉은 청어를 쫓는 할 수있다,하지만 난 난처한 상황에 빠진거야, 나는 그것을 제거하는 총 가치가있을 것이라고 생각이 너무 많은 연결 문제를 일으키는 그물에 대한 인 PConnect에 충분한 의견이 있습니다.

누구든지이 작업을 수행하는 방법을 알고 있습니까? 나는 다양한 문구를 사용하여 검색해 왔으며 아무것도 찾을 수없는 것 같습니다.

+0

어떤 Propel 버전을 사용하고 있습니까? – j0k

+0

우리는 버전 1.6을 사용하고 있습니다 – CargoMeister

+1

Propel은 기본적으로 영구 연결을 사용한다고 생각하지 않습니다. 적어도 [코드에 있습니다] (https://github.com/propelorm/Propel/blob/master/runtime/lib/connection을보십시오. /PropelPDO.php#L132-158) config 파일의 정보를 사용합니다. PDO의 지속적인 연결을 정의하지 마십시오. – j0k

답변

0

결과적으로 RDS 재실행 로그로 인해 오류가 발생했습니다. 모든 RDS 인스턴스 크기에는 하나의 크기 만 있습니다. 더 큰 인스턴스 크기에서는 데이터가 데이터베이스에 기록되기 전에 리두 로그를 채우고 처음으로 돌아갈 수 있습니다. 이 시점에서 그것은 '격렬하게 물결 치는'일을 포착하여 새로운 요청을 처리하지 않으며, 미친 듯이 쌓아 올립니다. 이로 인해 결국 앱이 다운되었습니다. RDS 서버가 작아짐에 따라 문제가 해결되었지만 Amazon에서는 그다지 만족스럽지 않습니다. 리두 로그의 크기를 변경할 수 있어야합니다.