Skip to main content

Usage:

pip install mem_top
from mem_top import mem_top

# From time to time:
logging.debug(mem_top()) # Or just print().

Result:

refs:
144997  <type 'collections.defaultdict'> defaultdict(<type 'collections.deque'>, {<GearmanJobRequest task='...', unique='.
144996  <type 'dict'> {'.:..............:.......': <GearmanJobRequest task='..................', unique='.................
18948   <type 'dict'> {...
1578    <type 'dict'> {...
968     <type 'dict'> {...
968     <type 'dict'> {...
968     <type 'dict'> {...
767     <type 'list'> [...
726     <type 'dict'> {...
608     <type 'dict'> {...

types:
292499  <type 'dict'>
217912  <type 'collections.deque'>
72702   <class 'gearman.job.GearmanJob'>
72702   <class 'gearman.job.GearmanJobRequest'>
12340   <type '...
3103    <type '...
1112    <type '...
855     <type '...
767     <type '...
532     <type '...

Explaining result:

  • Noticed a leak of 6GB RAM and counting.

  • Added “mem_top” and let it run for a while.

  • When got the result above it became absolutely clear who is leaking here - the Python client of Gearman.

  • Found its known bug - https://github.com/Yelp/python-gearman/issues/10 leaking defaultdict of deques, and a dict of GearmanJobRequest-s, just as the “mem_top” showed.

  • Replaced “python-gearman” - long story: stale 2.0.2 at PyPI, broken 2.0.X at github, etc.

  • “mem_top” confirmed the leak is now completely closed.

Config defaults:

mem_top(limit=10, width=100, sep='\n', refs_format='{num}\t{type} {obj}', types_format='{num}\t {obj}')

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mem_top-0.1.0.tar.gz (1.9 kB view details)

Uploaded Source

File details

Details for the file mem_top-0.1.0.tar.gz.

File metadata

  • Download URL: mem_top-0.1.0.tar.gz
  • Upload date:
  • Size: 1.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for mem_top-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b870ef62fc18b310db61ef16aa982cbbea23aa08ff7b474b2eb1e8067630f61a
MD5 18a5af60a4821de5ef6e20e7ca41bf3d
BLAKE2b-256 2bd1db21af230c205e049b5a8fa3d03011964821fad7d547c54ca1be6befd376

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.1

2 files

0.2.0

2 files

0.1.7

1 file

0.1.6

1 file

0.1.5

1 file

0.1.4

1 file

0.1.3

0.1.2

1 file

0.1.1

1 file

This release

0.1.0 This release

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page