Сообщение об ошибке до простоя: ошибка posix_memalign(16, 4096) (12: невозможно выделить память)
У меня есть сервер под управлением Django поверх Gunicorn и Nginx, и прошлой ночью у меня было небольшое время простоя. После перезапуска Nginx и Gunicorn сервер вернулся в нормальное состояние, но я не могу понять, что вызвало сбой. Изучив журнал, в котором указано, где возникла проблема: во-первых, было около 100 строк, например:
2014/03/04 15:48:47 [emerg] 21790#0: *19536658 posix_memalign(16, 4096) failed (12: Cannot allocate memory), client: xx.xx.xx.xx, server: www.mysite.com, request: "GET /static/images/loading.gif HTTP/1.1", host: "www.mysite.com"
Затем произошли реальные ошибки. Их было около 300:
2014/03/04 15:49:04 [error] 21790#0: *19532341 connect() failed (110: Connection timed out) while connecting to upstream, client: xx.xx.xx.xx, server: www.mysite.com, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8081/", host: "www.mysite.com"
... и около 100 из них:
2014/03/04 15:51:32 [error] 21789#0: *19529583 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: xx.xx.xx.xx, server: www.mysite.com, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8081/", host: "www.mysite.com"
... вместе с несколькими из них поперчены по всему журналу:
2014/03/04 15:51:22 [emerg] 21791#0: *19539287 malloc(1024) failed (12: Cannot allocate memory) while waiting for request, client: xx.xx.xx.xx, server: 0.0.0.0:80
Что касается журналов ошибок Django, я получил много ошибок с этим сообщением:
OperationalError: could not fork new process for connection: Cannot allocate memory
Это похоже на какую-то ошибку нехватки памяти, но в тот момент, когда мой подкачка была полностью пустой, я не видел в журналах ничего, что указывало бы на то, что какой-либо процесс был убит. Может ли кто-нибудь пролить свет на то, что здесь происходит?