GAE: Продолжается ли выполнение после превышения предела мягкой частной памяти?

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

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

Итак, если TaskQueue достигает мягкого ограничения частной памяти, продолжается ли выполнение до тех пор, пока запрос не завершится, или оно немедленно останавливается? Возможно ли, что только код регистрации больше не записывается?

Бревно:

2012-04-11 23:45:13.203
Exceeded soft private memory limit with 145.848 MB after servicing 3 requests total
W 2012-04-11 23:45:13.203
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.

Снимок экрана журнала


person speedplane    schedule 12.04.2012    source источник


Ответы (2)


Что здесь происходит, так это то, что обработчик в конце проверяет состояние памяти, если оно превышает предел, он записывает ошибку и выключает экземпляр.
Поскольку задача успешно завершена (вы можете см., что он завершается со статусом 200), он не будет повторять попытку.

Когда во время выполнения обработчика состояние памяти намного превышает предел памяти, обработчик выключит экземпляр и вернет ошибку 500, в этом случае задача повторит попытку.

person Shay Erlichmen    schedule 12.04.2012
comment
@speedplane существует ограничение на ведение журнала для каждого запроса, но вы должны увидеть последние журналы в средстве просмотра журналов. - person Shay Erlichmen; 12.04.2012
comment
+1, но вы уверены, что экземпляр будет немедленно закрыт? Мой серверный экземпляр несколько раз превышал предел программной памяти, и, судя по тому, что я наблюдал, экземпляр все еще мог обслуживать запросы, прежде чем был внезапно закрыт через некоторое время. (минимум минут) - person Ibrahim Arief; 12.04.2012
comment
Да, я уверен. Посмотрите на журнал, который я только что опубликовал. Кажется, он падает без печати какого-либо кода регистрации. - person speedplane; 12.04.2012
comment
Даже если он завершается, он определенно не печатает код регистрации. Это ошибка? - person speedplane; 13.04.2012
comment
Или, возможно, код регистрации не печатается, когда память слишком велика и есть статус 500? - person speedplane; 13.04.2012

Из моего опыта: если ваш экземпляр попадет в мягкую память, ваш запрос все равно будет завершен, но статус ответа будет 500.

person Yuan Wang    schedule 12.04.2012
comment
Здесь статус ответа — 200. - person speedplane; 12.04.2012
comment
раньше было 200, но я думаю, что сейчас 500, или есть два вида попаданий в память, Превышенный предел мягкой частной памяти всегда дает мне 500 - person Yuan Wang; 12.04.2012
comment
Статус ответа зависит от приложения, если только оно не было завершено до того, как оно могло завершиться (например, из-за того, что оно достигло жесткого ограничения памяти или ограничения по времени). - person Nick Johnson; 13.04.2012
comment
если вы посмотрите на скриншот выше, ответ будет 500. - person Yuan Wang; 16.04.2012