Что такое «мягкий частный предел памяти» в GAE? - PullRequest
22 голосов
/ 17 февраля 2012

Пользователь моего приложения попытался отправить файл в виде вложения электронной почты, используя мое приложение.Однако, из-за этого возникло следующее исключение, из-за которого у меня возникли проблемы с расшифровкой

Exceeded soft private memory limit with 192.023 MB after servicing 
2762 requests total

While 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.

Что такое «мягкий предел частной памяти» и что могло вызвать это исключение?

Ответы [ 2 ]

23 голосов
/ 18 февраля 2012

«Мягкое ограничение частной памяти» - это ограничение памяти, при котором App Engine будет останавливать экземпляр от получения любых дополнительных запросов, ожидать любые невыполненные запросы и завершать работу экземпляра.Думайте об этом как о постепенном отключении, когда вы используете слишком много памяти.

Время от времени превышение мягкого предела - это нормально, так как все ваши запросы завершаются, как и должны.Однако каждый раз, когда это происходит, ваш следующий запрос может запустить новый экземпляр, что может повлиять на задержку.

20 голосов
/ 18 февраля 2012

Я предполагаю, что вы используете интерфейсный или базовый экземпляр самого низкого класса. (Класс F1 или B1) Оба имеют квоту памяти 128 МБ, поэтому ваше приложение, скорее всего, превысило этот предел квоты. Однако эта квота, по-видимому, не строго соблюдается, и у Google есть некоторая снисходительность в этом (таким образом, термин soft limit), у меня было несколько экземпляров приложения F1, потребляющих ~ 200 МБ памяти в течение нескольких минут до того, как App Engine был остановлен.

Попробуйте увеличить класс экземпляра до следующего класса более высокого уровня (F2 или B2) с квотой памяти 256 МБ и посмотрите, не возникнет ли ошибка снова. Кроме того, проведите некоторое расследование на предмет того, является ли ошибка воспроизводимой при каждой отправке электронной почты с вложениями. Потому что возможно, что то, что вы видите, является симптомом, а не причиной, и часть вашего приложения, которая потребляет много памяти, находится где-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...