[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#934080: [libc6] Significant degradation in the memory effectivity of the memory allocator



Hello, Florian

14.08.19 15:07, Florian Weimer пише:
Is there a way to reproduce your results easily?  Upstream, we're
looking for workloads which are difficult to handle for glibc's malloc
and its default settings, so that we hopefully can improve things
eventually.
This way of the ready builds of the application and LiveDisks is
simplest one for me, than writing a test application with simulation
such sort complex load, so you can already install the application,
start and observer.
I meant: Is there a reproduction recipe someone could use, without being
familiar with the application?

Sure, and I have wrote such one in the first email, without specifying the program.

About this program, it is OpenSCADA, which packages you may get here http://oscada.org/en/main/download/ for the Work version and for Debian versions from 7 to 10.

About installing, you may read this one http://oscada.org/wiki/Special:MyLanguage/Documents/How_to/Install but shortly, you need to install the package openscada-model-aglks, after connection a Debian repository of this program.

$ wget http://ftp.oscada.org/Debian/10/openscada/openscada.list
$ cp openscada.list /etc/apt/sources.list.d
$ $ wget -O - http://ftp.oscada.org/Misc/pkgSignKey | sudo apt-key add -
$ apt-get update; apt-get install openscada-model-aglks

The package openscada-model-aglks is a ready configuration and data to start and work since it is a simulator itself.

Next let's per the stages:
1. Start the program and set the initial state, fixing the memory allocation — measuring the initial memory consumption value > Just start the program from the desktop menu for the entry "Simulator "AGLKS" on the open SCADA system" or by the command:
$ openscada_AGLKS

> Wait for about one minute to fix the memory consumption
> Open the page: http://oscada.org/wiki/images/4/42/WebVision_wvis_cfg.png , where you can control of the WEB-sessions opening and closing, so allocating and freeing the memory — such sort of the iterations. > Set the "Life time of the sessions" on the page to 1 minute instead 10, to decrease the waiting time > In a Web-browser open the page "http://localhost:10002/WebVision";, this is the initial memory consumption value.

2. Perform the allocation-freeing iteration
2.1. Open the first Web-interface page from a Web-browser of the host system
> The first page is "http://localhost:10002/WebVision/prj_AGLKS";

2.2. Close the page on the Web-browser
2.3. Wait to close-freeing session of the first Web-interface page on the program side, 1 minute — measuring the iteration memory consumption value
3. Return to the stage 2 and repeating 5 iterations

But I think, the problem related in linking the areas to the threads, and such sort of programs as OpenSCADA, in the Web-mode, recreate the threads which then rebind to different arenas, why we have such sort of memory leak into the arenas.

And it seems is a conceptual problem of the arenas in GLibC.

Regards, Roman


Reply to: