Hi Kevin,

There is no need to wait for a crash. From time to time, you can send a SIGUSR1 to a worker process (or a process you suspect as running out of pkg mem) -> the process will do a pkg dump to the log.

Also, I would strongly advice upgrading to 1.11 (latest LTS) - 1.9 is no longer maintained and there were some fixes in the memory manager since then.

Regards,

Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com

On 27.06.2014 10:36, Kevin Mathy wrote:
Hi Bogdan,

I've set given options, and now I'm waiting for a new crash of the service... Where the memdump will be located ? In another logfile than opensips.log, or in the same ?

Thanks

*
Bien cordialement,
Best Regards,

**Kevin MATHY* |**Ingénieur VoIP
*
*


2014-06-26 18:32 GMT+02:00 Bogdan-Andrei Iancu <[email protected] <mailto:[email protected]>>:

    Kevin,

    Restarting should not make you loose ongoing calls (even if you
    use the dialog module), do do not worry on that.

    Regards,

    Bogdan-Andrei Iancu
    OpenSIPS Founder and Developer
    http://www.opensips-solutions.com

    On 26.06.2014 18 <tel:26.06.2014%2018>:31, Kevin Mathy wrote:
    Yes, I'll set those options, and wait 'till the trafic on the
    server reduces a lot (tonight I think) to restart opensips.
    Unless if you have another method to reload the config without
    losing calls ?

    Thanks a lot,


    *
    Bien cordialement,
    Best Regards,

    **Kevin MATHY* |**Ingénieur VoIP
    *
    *


    2014-06-26 17:20 GMT+02:00 Bogdan-Andrei Iancu
    <[email protected] <mailto:[email protected]>>:

        Kevin,

        The trick is to set (in this order):
            memlog = 4
            memdump = 1

        This will do no logging at runtime, but it will log the mem
        dump (at shutdown or at signal).

        Could you try that ?

        Regards,

        Bogdan-Andrei Iancu
        OpenSIPS Founder and Developer
        http://www.opensips-solutions.com

        On 26.06.2014 18 <tel:26.06.2014%2018>:09, Kevin Mathy wrote:
        Hi Bogdan,

        We already have compiled opensips as described, and set
        memlog=1 in the configuration file.
        But as we had a lot of debug messages about memory usage, we
        unset memlog=1 in the config, so we don't have any report now.
        Is there a way to get those messages in a different log
        file, instead of inside the "classical" opensips.log ? I've
        found an option like "memdump" that can be set in
        opensips.cfg, but what about it ?

        And as cacti doesn't seems to be relevant to check
        opensips's mem usage, do you have any other solution to
        check it ?

        Thanks for your help,

        *
        Bien cordialement,
        Best Regards,

        **Kevin MATHY* |**Ingénieur VoIP
        *
        *


        2014-06-26 16:46 GMT+02:00 Bogdan-Andrei Iancu
        <[email protected] <mailto:[email protected]>>:

            Hi Kevin,

            For debugging potential mem leaks, please look into:
            http://www.opensips.org/Documentation/TroubleShooting-OutOfMem
            If you need help with that, let me know.

            Also, cacti is monitoring the system memory which is
            irrelevant for OpenSIPS (as OpenSIPS is pre-allocating -
            from OS - all the needed memory at startup).

            Regards,

            Bogdan-Andrei Iancu
            OpenSIPS Founder and Developer
            http://www.opensips-solutions.com

            On 26.06.2014 15 <tel:26.06.2014%2015>:04, Kevin Mathy
            wrote:
            Hi List,

            I'm facing a memory usage issue with OpenSIPS 1.9.2 on
            a Debian 7 server

                root@asbc2:/home/kemathy# uname -a
                Linux asbc2 3.2.0-4-amd64 #1 SMP Debian
                3.2.57-3+deb7u2 x86_64 GNU/Linux

                root@asbc2:/home/kemathy# opensips -V

                version: opensips 1.9.2-notls (x86_64/linux)
                flags: STATS: On, USE_IPV6, USE_TCP, DISABLE_NAGLE,
                USE_MCAST, SHM_MEM, SHM_MMAP, PKG_MALLOC,
                DBG_F_MALLOC, FAST_LOCK-ADAPTIVE_WAIT
                ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE
                262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE
                65535
                poll method support: poll, epoll_lt, epoll_et,
                sigio_rt, select.
                svnrevision: unknown
                @(#) $Id$
                main.c compiled on 11:15:37 Jun 20 2014 with gcc 4.7


            The server handles something like 70000 to 90000 calls
            per day, with around 20 to 40 Calls Per Second


            As you can see on the following Cacti graphs, system's
            free memory decreases constantly to finally reach the
            lower value of 160M :

            
https://www.dropbox.com/s/np3fnc6ni4vuoet/ASBC2_Memory_Usage_Evolution.jpg


            The system can stay 2-3 days working in this state, but
            for example, yesterday evening (2014-06-25 18:50:00),
            opensips crashed, after showing those log messages :

                Jun 25 18:51:18 asbc2
                /usr/local/sbin/opensips[11390]:
                ERROR:db_mysql:db_mysql_convert_rows: no private
                memory left
                Jun 25 18:51:18 asbc2
                /usr/local/sbin/opensips[11390]:
                ERROR:core:build_res_buf_from_sip_req: out of pkg
                memory  ; needs 412
                Jun 25 18:51:18 asbc2
                /usr/local/sbin/opensips[11380]:
                ERROR:core:build_res_buf_from_sip_req: out of pkg
                memory  ; needs 355
                Jun 25 18:51:18 asbc2
                /usr/local/sbin/opensips[11380]:
                ERROR:core:received_builder: out of pkg memory
                Jun 25 18:51:18 asbc2
                /usr/local/sbin/opensips[11364]:
                ERROR:core:build_res_buf_from_sip_req: out of pkg
                memory  ; needs 355
                Jun 25 18:51:18 asbc2
                /usr/local/sbin/opensips[11364]:
                ERROR:core:add_lump_rpl: no free pkg memory !
                Jun 25 18:51:18 asbc2
                /usr/local/sbin/opensips[11362]:
                ERROR:core:build_res_buf_from_sip_req: out of pkg
                memory  ; needs 355
                Jun 25 18:51:18 asbc2
                /usr/local/sbin/opensips[11362]:
                ERROR:core:db_allocate_rows: no memory left
                Jun 25 18:51:18 asbc2
                /usr/local/sbin/opensips[11362]:
                ERROR:db_mysql:db_mysql_convert_rows: no private
                memory left
                Jun 25 18:51:18 asbc2
                /usr/local/sbin/opensips[11362]:
                ERROR:core:build_res_buf_from_sip_req: out of pkg
                memory  ; needs 412
                Jun 25 18:51:18 asbc2
                /usr/local/sbin/opensips[11356]:
                ERROR:core:build_res_buf_from_sip_req: out of pkg
                memory  ; needs 355
                Jun 25 18:51:18 asbc2
                /usr/local/sbin/opensips[11356]:
                ERROR:core:add_lump_rpl: no free pkg memory !


            And after the service's restart, everything was OK :

                Jun 25 19:12:39 asbc2
                /usr/local/sbin/opensips[29351]: INFO:core:main:
                using 64 Mb shared memory
                Jun 25 19:12:39 asbc2
                /usr/local/sbin/opensips[29351]: INFO:core:main:
                using 4 Mb private memory per process



            For information, here are the memory values at this
            moment; opensips has handled 5000 calls since his bootup :

                root@asbc2:/home/kemathy# free -m
                 total used free shared  buffers cached
                Mem: 16082  12887 3195  0        339      11393
                -/+ buffers/cache:       1154  14928
                Swap:  32755  0      32755


            For now, OpenSIPS is launched with S_MEMORY = 64 and
            P_MEMORY = 4
            My first idea would be to increase the P_MEMORY value
            to 8 for example, as it seems to be a lack of PKG
            Memory, but in case it's a memory-freeing problem,
            it'll not solve our issue (I think).

            My questions are : How can we calculate the appropriate
            value for S_MEMORY and P_MEMORY ? And how can we solve
            our "out of pkg memory" problem ?

            If you need further informations, or anything else,
            feel free to ask me !

            Thanks a lot for your help,

            *
            Bien cordialement,
            Best Regards,

            **Kevin MATHY* |**Ingénieur VoIP
            *
            *



            _______________________________________________
            Users mailing list
            [email protected]  <mailto:[email protected]>
            http://lists.opensips.org/cgi-bin/mailman/listinfo/users










_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to