Отслеживание использования памяти Python / uWSGI

Когда я запускаю top, я вижу (uWSGI использует ~860MB RES; это в докере)

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
   11 root      20   0 1048736 360688  19064 S   0.3 17.6   1:17.00 uwsgi
   12 root      20   0 1018840 328140  18964 S   0.3 16.0   1:42.41 uwsgi

RES обозначает резидентный размер, который является точным представлением того, сколько фактической физической памяти потребляет процесс.

Я хотел бы понять, что использует так много оперативной памяти. Я попытался использовать стандартные инструменты анализа кучи Python, но они не показывают ничего такого большого. Например, используя pympler, Я вижу:

                       types |   # objects |   total size
============================ | =========== | ============
                        dict |        7933 |      9.15 MB
                         str |       50742 |      8.40 MB
                        code |       18044 |      2.20 MB
                        type |        2347 |      2.03 MB
                     unicode |        3188 |      1.56 MB
                       tuple |        8012 |    588.46 KB
                        list |        4425 |    550.81 KB
                     weakref |        3707 |    318.57 KB
                         set |         828 |    308.59 KB
  builtin_function_or_method |        3432 |    241.31 KB
                        cell |        3267 |    178.66 KB
         function (__init__) |        1417 |    166.05 KB
           getset_descriptor |        2337 |    164.32 KB
          wrapper_descriptor |        1968 |    153.75 KB
            _sre.SRE_Pattern |         290 |    123.77 KB

Может ли быть какое-то использование памяти вне кучи? Возможно, сам uwsgi использует столько оперативной памяти?

UDPATED

Мой текущий uwsgi.ini файл:

[uwsgi]
strict = true

http = :8000
module = my_service.wsgi
master = true
processes = 2
threads = 2

buffer-size = 10000

0 ответов

Другие вопросы по тегам