Я видел этот Python вопрос: App Engine Deferred: Tracking Down Memory LeaksОтслеживание утечки памяти в приложении Google App Engine Golang?
... Кроме того, я столкнулся с этой ужасной ошибкой:
Exceeded soft private memory limit of 128 MB with 128 MB after servicing 384 requests total
...
After handling this request, the process that handled this request was found to be using too much memory and was terminated. This is likely to cause a new process to be used for the next request to your application. If you see this message frequently, you may have a memory leak in your application.
В соответствии с этим другим вопросом, может быть, что «класс экземпляра» слишком мал для запуска этого приложения, но перед его увеличением я хочу быть уверенным.
После проверки приложения я не вижу ничего очевидного в отношении того, где может возникнуть утечка (например, незакрытые буферы и т. Д.) ... и все, что бы это ни было, должно быть очень маленьким, но, возможно, Общая ошибка.
Поскольку это работает на GAE, я не могу действительно профилировать его локально очень легко, насколько я знаю, поскольку это среда выполнения. Возможно, у кого-нибудь есть предложение о том, как действовать и обеспечить правильную переработку памяти? - Я как бы новичок в Go, но до сих пор мне нравилось работать с ним.
[Профиль кучи] (https://blog.golang.org/profiling-go-programs) (описанный в этой ссылке вместе с распределением и профилями процессора) может рассказать вам, что использует большую часть ОЗУ. ['runtime/pprof'] (https://golang.org/pkg/runtime/pprof/) может отправлять кучу prof. любому 'Writer', включая' http.ResponseWriter'; вы могли бы запустить это за некоторыми auth в производстве. – twotwotwo
Вы можете посмотреть на это по-другому: временно обновить до следующего (1 или 2) класса экземпляров и проверить тренд использования памяти. Если он стабилизируется через некоторое время, класс экземпляра был действительно слишком маленьким - сделанный :) Если он продолжает расти (в конечном итоге вызывает перезагрузку экземпляра), то действительно происходит утечка памяти, и расследование * может потребоваться * (частота перезапуска экземпляра * может * быть терпимым с классом более высокого экземпляра). Можно было бы посмотреть на такие перезагрузки, как периодическая функция обновления/самоочистки периодического экземпляра, позволяющая, например, сосредоточиться на других, более насущных вопросах;) –
@twotwotwo У меня есть эта регистрация сейчас, спасибо за идею. –