Eclipse Kepler SR2에서 실행되는 Google App Engine v.1.9.1, Java 버전을 사용하고 있습니다. 나는 JDK 1.7을 가지고있다. 내 logging.properties는 java.util.logging.ConsoleHandler
에만 로그를 보내고 있습니다.Google AppEngine의 LogService에서 OutOfMemoryError
[편집] Eclipse에서 실행되는 개발 서버 [/ 편집]는 다른 서버에서 많은 데이터를 수신하여 데이터베이스에 덤프합니다. 이렇게하면 많은 로그가 생성됩니다. 단 몇 시간 만 지나면 OutOfMemoryError가 발생합니다.
저는 JProfiler를 실행했고 주변에 보관중인 객체가 com.google.apphosting.api.logservice.LogServicePb$LogLine
인 것으로 파악했습니다. 어쨌든 이것은 수백만 가지 사례를 기억에 남김없이 버려지지 않고 있습니다.
확실히 데이터 기록량을 줄일 수 있지만 문제가 지연됩니다.
로그 라인을 비우는 방법을 도처에서 살펴 보았지만 이에 대한 설정을 찾을 수 없습니다. 사용할 수있는 유일한 옵션은 Java가 아닌 Python입니다.
이 문제의 원인과 해결 방법을 알려주세요.
개발 서버는 생산로드를 처리하도록 설계되지 않았습니다. 제작 과정에서 같은 오류가 발생 했습니까? –
@PeterKnego 방금 개발을 시작했습니다. 프로덕션 서버가 아직 없습니다. 문제의 "로드"는 시간당 1 분 동안 실행되며 약 200 개의 데이터베이스 쿼리 만 있습니다. 이것은 큰 짐과는 거리가 멀다. 예. 로그 문이 많이 있지만 왜 메모리에서 버려지지 않았습니까? 로그 기록을 줄이면 며칠 동안 만 문제가 지연되어 다시 충돌합니다. – Emmanuel
개발 서버는 응용 프로그램에서 요구하는 "프로덕션 품질"을 제공하지 않습니다. 제한된 테스트를위한 프로덕션 클라우드 환경의 작은 하위 집합입니다. 온라인으로 애플리케이션 ID를 생성하고, 애플리케이션을 배포하고, 최소 24 시간 동안 해당 애플리케이션의 로깅 활동 및 메모리 사용을 모니터링하십시오. 배포 된 서버에 메모리가 누출되면 큰 [보고 할 버그]가 있습니다 (https://code.google.com/p/googleappengine/issues/list?can=2&q=Type%3DDefect). 로컬 개발 환경에서만 메모리 누수가 발생하면보고 할 버그가 있습니다. –