[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: Memory
Pierangelo Masarati пишет:
Fyodor Smirnov wrote:
What can I do to solve this problem?
run slapd under valgrind or any other leak detector for a few seconds
(loading it with the typical operations your server is loaded with),
then stop it and see what does it say about memory leaks.
For a few seconds only?
I use slapd for storing user mail database and for checking presense and
parameters of mailboxes in database by mail server.
Now this server receives about 400 messages per hour (about only 1
message per 9 seconds). SMTP server uses EXTERNAL authentication and
does 2 requests (mailbox presence, mail filter parameter check) to slapd
for each recipient address by proxy authorization.
Load on server is constant and does not significantly changes in time, but
when I start slapd, I see (top command):
PID USERNAME THR PRI NICE SIZE RES STATE TIME WCPU COMMAND
16841 ldap 3 20 0 10768K 6140K kserel 0:00 0.00% slapd
after 1 minute:
16841 ldap 3 20 0 21268K 6356K kserel 0:00 0.00% slapd
after 30 minutes:
16841 ldap 3 20 0 83720K 7160K kserel 0:03 0.00% slapd
after 10 hours (night):
16841 ldap 3 20 0 173M 8616K kserel 2:06 0.00% slapd
Is this normal behavior?
Valgrind output after ~3 hours:
=======================================================
==12192== Memcheck, a memory error detector for x86-linux.
==12192== Copyright (C) 2002-2004, and GNU GPL'd, by Julian Seward.
==12192== Using valgrind-2.1.0, a program supervision framework for
x86-linux.
==12192== Copyright (C) 2000-2004, and GNU GPL'd, by Julian Seward.
==12192==
==12192== My PID = 12192, parent PID = 12148. Prog and args are:
==12192== /usr/local/libexec/slapd
==12192== -h
==12192== ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/
==12192== -g
==12192== ldap
==12192== -u
==12192== ldap
==12192== -d
==12192== 256
==12192== Estimated CPU clock rate is 1822 MHz
==12192== For more details, rerun with: -v
==12192==
==12192== warning: Valgrind's pthread_attr_destroy does nothing
==12192== your program may misbehave as a result
==12192== warning: Valgrind's pthread_attr_destroy does nothing
==12192== your program may misbehave as a result
==12192== warning: Valgrind's pthread_attr_destroy does nothing
==12192== your program may misbehave as a result
==12192== warning: Valgrind's pthread_cond_destroy is incomplete
==12192== (it doesn't check if the cond is waited on)
==12192== your program may misbehave as a result
==12192== warning: Valgrind's pthread_cond_destroy is incomplete
==12192== (it doesn't check if the cond is waited on)
==12192== your program may misbehave as a result
==12192== warning: Valgrind's pthread_cond_destroy is incomplete
==12192== (it doesn't check if the cond is waited on)
==12192== your program may misbehave as a result
==12192==
==12192== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
==12192== malloc/free: in use at exit: 13656 bytes in 93 blocks.
==12192== malloc/free: 153101 allocs, 153008 frees, 107445958 bytes
allocated.
==12192== For counts of detected errors, rerun with: -v
==12192== searching for pointers to 93 not-freed blocks.
==12192== checked 5220180 bytes.
==12192==
==12192== 49 bytes in 5 blocks are definitely lost in loss record 3 of 17
==12192== at 0x3C032183: malloc (in
/usr/local/lib/valgrind/vgpreload_memcheck.so)
==12192== by 0x3C36078B: strdup (in /lib/libc.so.6)
==12192== by 0x3C35B54E: _nsyylex (in /lib/libc.so.6)
==12192== by 0x3C35A9D4: _nsyyparse (in /lib/libc.so.6)
==12192==
==12192==
==12192== 224 bytes in 3 blocks are definitely lost in loss record 5 of 17
==12192== at 0x3C032183: malloc (in
/usr/local/lib/valgrind/vgpreload_memcheck.so)
==12192== by 0x3C2B48D0: (within /usr/local/lib/valgrind/libpthread.so.2)
==12192== by 0x3C2B5F49: pthread_mutex_init (in
/usr/local/lib/valgrind/libpthread.so.2)
==12192== by 0x3C041DBC: ldap_pvt_thread_mutex_init (in
/usr/local/lib/libldap_r-2.3.so.2)
==12192==
==12192== LEAK SUMMARY:
==12192== definitely lost: 273 bytes in 8 blocks.
==12192== possibly lost: 0 bytes in 0 blocks.
==12192== still reachable: 13383 bytes in 85 blocks.
==12192== suppressed: 0 bytes in 0 blocks.
==12192== Reachable blocks (those to which a pointer was found) are not
shown.
==12192== To see them, rerun with: --show-reachable=yes
=======================================================
- Follow-Ups:
- Re: Memory
- From: "Pierangelo Masarati" <ando@sys-net.it>
- References:
- Memory
- From: Fyodor Smirnov <wmac@yandex.ru>
- Re: Memory
- From: Pierangelo Masarati <ando@sys-net.it>