[gdal-dev] GDAL python bindings memory usage
Andrew C Aitchison
andrew at aitchison.me.uk
Fri Dec 27 11:08:31 PST 2019
On Thu, 26 Dec 2019, Evert Etienne (SITEMARK) wrote:
> I am measuring memory usage using psutil: Process:
> `psutil.Process().memory_info().rss` and
> `psutil.Process().memory_percent()` General:
> `psutil.virtual_memory().available`
>
> I do tests both on MacOS and linux.
>
> Any idea about how to investigate the file cache or how to use
> psutil to check the difference between this file-system cache and
> other memory usage?
I'm afraid I don't know enough python to help.
On Linux (not sure about MacOS) the command "free" shows this filesystem
cache as "buff/cache".
> By the way, instead of using a real tempfile but removing it and
> using `input + â??.tmpâ??` as output file yields the same behavior.
>
> When calling the gdal calls in a Process, the issues do not appear (3 different approaches)
>
> ```
> 74 109.5 MiB 0.0 MiB ctx = multiprocessing.get_context('spawn')
> 75 109.5 MiB 0.0 MiB p = ctx.Process(target=gdalwarp_wrapper, args=(output_path, input_path), kwargs=kwargs)
> 76 109.7 MiB 0.1 MiB p.start()
> 77 105.5 MiB 0.0 MiB p.join()
> 78 105.5 MiB 0.0 MiB ctx = multiprocessing.get_context('fork')
> 79 105.5 MiB 0.0 MiB p = ctx.Process(target=gdalwarp_wrapper, args=(output_path, input_path), kwargs=kwargs)
> 80 105.5 MiB 0.0 MiB p.start()
> 81 105.5 MiB 0.0 MiB p.join()
> 82 3750.6 MiB 3645.0 MiB gdalwarp_wrapper(output_path, input_path, **kwargs)
> ```
>
> Thanks!
>
> On 26 Dec 2019, at 20:21, Andrew C Aitchison <andrew at aitchison.me.uk<mailto:andrew at aitchison.me.uk>> wrote:
>
> How are you measuring free RAM at this point ?
>
> The GDAL cache will be included in the the memory use reported by
> the python interpreter, but at least on Linux the system command
> "free" also reports the memory used by the file-system cache, which
> will contain (the read parts of) the file, until the system decides
> to use that RAM for something else. Your tempfile is likely being
> stored in the filesystem cache.
More information about the gdal-dev
mailing list