2010-01-24 2 views
1

확인. 나는 많은 정보가 없다는 것을 알고있다. 그것은 본질적으로 제 질문의 이유입니다. 나는 백엔드에서 Flash/Flex와 Rails를 사용하여 게임을 제작 중이다. 두 사람 사이의 통신은 WebORB를 통해 이루어집니다.일관된 부하로 시간이 지남에 따라 응답 시간이 증가 (악화)

다음과 같은 현상이 발생합니다. 클라이언트를 시작하면 작업이 60 초마다 서버를 호출합니다 (그다지 좋지 않은가?). 그러면 두 개의 데이터베이스 SELECTS 및 UPDATE가 발생하고 클라이언트에 대한 응답이 생성됩니다.

이 메시지는 60 초마다 반복됩니다. 나는 heroku에 테스트 버전을 배포했고 NewRelic의 RPM은 응답 시간이 시간이 지남에 따라 저하되었다고 말했습니다. 60 초마다 하나의 작업으로 하나의 클라이언트. 몇 시간 동안 응답 시간은 응답 시간에 150ms에서 900ms 이상으로 떨어졌습니다.

내 개발 환경 (내 Macbook Pro)에서 이것을 재현 할 수 있으므로 Heroku 측에서 문제가되지 않습니다.

서버 응용 프로그램에서 정교한 (설계 별) 작업을 수행하지 않습니다. 동작이 호출되면 데이터베이스에서 일부 데이터를 가져 와서 AR 업데이트를 수행 한 다음 응답을 반환합니다. 캐싱 등 없음

어떤 생각? 누군가? 나는 정말로 감사 할 것입니다.

답변

0

개발 로그가 그 요청에 대해 느린 것은 무엇입니까? 뷰 또는 DB? 그것이 db 인 경우 데이터베이스에있는 레코드 수를 확인하고 쿼리를 최적화하는 방법을 확인하십시오. 어쩌면 일부 필드의 색인을 생성해야 할 수도 있습니다.

0

개발 또는 프로덕션 모드에서 로컬로 실행하고 있습니까? 개발 모드에서 레일스 애플리케이션 성능이 시간이 지남에 따라 더 빨리 (메모리 사용량) 저하된다는 것을 보았습니다. 개발 모드에서 Heroku에서 앱을 실행할 수 있는지 여부는 확실하지 않지만 내가 너라면 그 점을 확인할 것입니다.

관련 문제