[ClusterLabs] Antw: crm_report consumes all available RAM
Vladislav Bogdanov
bubble at hoster-ok.com
Tue Sep 8 12:34:55 UTC 2015
08.09.2015 15:18, Ulrich Windl wrote:
>>>> Vladislav Bogdanov <bubble at hoster-ok.com> schrieb am 08.09.2015 um 14:05 in
> Nachricht <55EECEFB.8050001 at hoster-ok.com>:
>> Hi,
>>
>> just discovered very interesting issue.
>> If there is a system user with very big UID (80000002 in my case),
>> then crm_report (actually 'grep' it runs) consumes too much RAM.
>>
>> Relevant part of the process tree at that moment looks like (word-wrap off):
>> USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
>> ...
>> root 25526 0.0 0.0 106364 636 ? S 12:37 0:00 \_
>> /bin/sh /usr/sbin/crm_report --dest=/var/log/crm_report -f 0000-01-01 00:00:00
>> root 25585 0.0 0.0 106364 636 ? S 12:37 0:00
>> \_ bash /var/log/crm_report/collector
>> root 25613 0.0 0.0 106364 152 ? S 12:37 0:00
>> \_ bash /var/log/crm_report/collector
>> root 25614 0.0 0.0 106364 692 ? S 12:37 0:00
>> \_ bash /var/log/crm_report/collector
>> root 27965 4.9 0.0 100936 452 ? S 12:38 0:01
>> | \_ cat /var/log/lastlog
>> root 27966 23.0 82.9 3248996 1594688 ? D 12:38 0:08
>> | \_ grep -l -e Starting Pacemaker
>> root 25615 0.0 0.0 155432 600 ? S 12:37 0:00
>> \_ sort -u
>>
>> ls -ls /var/log/lastlog shows:
>> 40 -rw-r--r--. 1 root root 23360000876 Sep 8 04:36 /var/log/lastlog
>>
>> That is sparse binary file, which consumes only 40k of disk space.
>> At the same time its size is 23GB, and grep takes all the RAM trying to
>> grep a string from a 23GB of mostly zeroes without new-lines.
>>
>> I believe this is worth fixing,
>
> I guess the UID value is used as offset in the lastlog file (which
exactly
I just should add, that user should be logged-in at least once.
> isOK). When reading such a sparse file, the filesystem should simply
> deliver zero blocks to grep. As grep is designed to read from streads
> there is not much you can do against reading all these zeros, I guess.
yep, I think that another indicator should be used
> Also an mmap based solution might exceed the virtual address space,
> especially for 32-bit systems.
> BTW: Did you try "last Pacemaker"? I could only test with "last
> reboot" here...
That is post-1.1.13
Thanks,
Vladislav
More information about the Users
mailing list