diff options
author | Ilya Mashchenko <ilyamaschenko@gmail.com> | 2019-03-07 13:49:56 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-07 13:49:56 +0300 |
commit | 2175673e29f8ee35d2e48719c6cf0169ddd31405 (patch) | |
tree | 7b4e3f15342bc88d3187184ebf87f85d50e96ccb /CHANGELOG.md | |
parent | d66b45ac0fa9918944c91c5ed4b3f4e76fb9f950 (diff) |
python.d.plugin: use separate process for initial module checking (#5552)
##### Summary
This PR adds (major) changes only to `python.d.plugin` file.
Fixes: #5525
`pyhton.d.plugin` imports a lot of additional packages during initial module initialization/job creating/checking and there is no way to unimport them, even if they arn't needed. It consumes relatively a lot of ram.
___
Memory utilization comparing before/after the PR (one job `example` module, py3.7.2):
> 21.1 => 8.8 MiB
![screenshot_20190305_111837](https://user-images.githubusercontent.com/22274335/53791147-c27a6e00-3f39-11e9-8eaf-8ac3809a3b6e.png)
##### Component Name
[`collectors/python.d.plugin`](https://github.com/netdata/netdata/blob/master/collectors/python.d.plugin/python.d.plugin.in)
##### Additional Information
This PR adds separate process for initial module checking.
Logic:
- main process spawns checker process
- checker process loads every module, loads module config, creates jobs and runs job.check() for every job, if check success it adds the job to the list.
- checker process returns list of modules and jobs.
- main process loads only active modules, etc.
Diffstat (limited to 'CHANGELOG.md')
0 files changed, 0 insertions, 0 deletions