Hi Daniel,

Yes, registration is authenticated against db. Actually, other transactions like INVITE also are authenticated against the db. But when things are not going well, the yield() function call is from registration scenario. Here is the callstack:

              libc.so.1`sched_yield
              usrloc.so`new_ucontact+0x470
              usrloc.so`insert_ucontact+0x28
              registrar.so`save+0x674
              openser`do_action+0x2e74
              openser`run_action_list+0x5c
              openser`eval_expr+0xaf8
              openser`eval_expr+0x2950
              openser`eval_expr+0x2980
              openser`do_action+0x24d0
              openser`run_action_list+0x5c
              openser`do_action+0x1738
              openser`run_action_list+0x5c
              openser`do_action+0x2628
              openser`run_top_route+0x25c
              openser`receive_msg+0x6ec
              openser`udp_rcv_loop+0x1740
              openser`main+0x3f9c
              openser`_start+0x7c

-Joy

On Thu, Feb 5, 2009 at 11:57 AM, Daniel-Constantin Mierla <miconda@gmail.com> wrote:
Hello,


On 02/05/2009 09:48 PM, joy yue wrote:

Hi Daniel,

db_mode is 0. I am using 1.3.2 version. You mentioned there is compilation option to disable syslog, how can I do that?
check the Makefile.defs, you have to enable -DNO_LOG in DEFS variable.

Are you doing also authentication of REGISTERs against db?

Cheers,
Daniel



thanks,
-Joy


On Thu, Feb 5, 2009 at 10:59 AM, Daniel-Constantin Mierla <miconda@gmail.com <mailto:miconda@gmail.com>> wrote:

   Hello Joy,


   On 02/05/2009 08:41 PM, joy yue wrote:


       Hi Daniel,

       I checked the NW traffic, it's not very high, around 11k
       pkt/sec coming into SUT. With the similar amount of traffic,
       openser has not problem to deal with call setup/teardown, but
       not registration. Increasing udp buffer helps some, but not a lot.


   then probably is whether syslog or db connection if you do
   authentication.

   If CSeq is not properly incremented by uac and openser/kamailio
   starts complaining a lot to a syncronous syslog, then it is very
   likely to be the cause. Later versions of kamailio should support
   negative values for debug, try to set it to -3.

   Also, what is the db_mode parameter value of usrloc?

   Cheers,
   Daniel


       I am using 32 children. When things get wrong, with the error
       message I mentioned earlier, I can see messages generated by
       syslog can be very large.  This may further degrade the
       performance and more packets get dropped.

       How much rate do you get for registration? Do you use
       authentication?

       I will try the test with larger hash size.

       Thanks,
       -Joy

       On Thu, Feb 5, 2009 at 10:20 AM, Daniel-Constantin Mierla
       <miconda@gmail.com <mailto:miconda@gmail.com>
       <mailto:miconda@gmail.com <mailto:miconda@gmail.com>>> wrote:

          Hello Joy,


          On 02/05/2009 08:07 PM, joy yue wrote:


              Hi Daniel,



              On Thu, Feb 5, 2009 at 7:29 AM, Daniel-Constantin Mierla
              <miconda@gmail.com <mailto:miconda@gmail.com>
       <mailto:miconda@gmail.com <mailto:miconda@gmail.com>>
              <mailto:miconda@gmail.com <mailto:miconda@gmail.com>
       <mailto:miconda@gmail.com <mailto:miconda@gmail.com>>>> wrote:

                 Hello,

                 are you running kamailio/openser with higher debug
       mode (e.g.,
                 debug set to a value higher than 3)?


              The debug mode I am using is 0, which is set in the
       .cfg file.

          ok, then is not high at all :-)


             
                 Is your syslog configured asynchronous? I tested
              registration with
                 very high rate and there was no performance issue.
       There is for
                 sure something misconfigured.


              I am using solaris. The default mode is synchronous, and
              actually I don't think solaris support asynchronous write.
              openser use syslog to log in debugging information, right?


          by default yes. Do you get lot of log messages coming from
       openser
          in the syslog file?


              If the mode matters, can I just simply disable openser from
              logging in any information to files?


          There is compilation to disable all loggings, but it seems that
          the problem is somewhere else.

          What is the value of children in your configuration file? Also,
          try to increase the size of the hash table used by usrloc
       module:
          http://kamailio.org/docs/modules/1.4.x/usrloc.html#id2506464

          Can you get stats from the network and see what was the
       reason for
          dropped packets? Full buffer?

          Cheers,
          Daniel



              thanks,
              -Joy
             
                 Cheers,
                 Daniel



                 On 02/05/2009 01:37 AM, joy yue wrote:


                     Hi Henning/Daniel,

                     Sorry to take such a long time replying back.

                     For my rig, I am using the memory as location
       back-up. When
                     the issue occurs, I see many registration
       request sent from
                     SIPp but not many 200 replies. netstat shows a huge
              amount of
                     packets get dropped.

                     Also I realized the issue only occurs when SIPp
       tried to
                     register many users in a very short time. With
       the same
              number
                     of users, the issue goes away if registration
       rate is kept
                     lower. When the issue occurs, usrloc module
       contends lock a
                     lot calling from new_ucontact(), and many system
       time
              is spent
                     in yield system calls. So it looks more like a
       performance
                     issue to me.

                     Thanks,
                     -Joy

                     On 1/27/09, *Henning Westerholt*
              <henning.westerholt@1und1.de
       <mailto:henning.westerholt@1und1.de>
       <mailto:henning.westerholt@1und1.de
       <mailto:henning.westerholt@1und1.de>>
                     <mailto:henning.westerholt@1und1.de
       <mailto:henning.westerholt@1und1.de>
              <mailto:henning.westerholt@1und1.de
       <mailto:henning.westerholt@1und1.de>>>
                     <mailto:henning.westerholt@1und1.de
       <mailto:henning.westerholt@1und1.de>
              <mailto:henning.westerholt@1und1.de
       <mailto:henning.westerholt@1und1.de>>
                     <mailto:henning.westerholt@1und1.de
       <mailto:henning.westerholt@1und1.de>
              <mailto:henning.westerholt@1und1.de
       <mailto:henning.westerholt@1und1.de>>>>> wrote:

                        On Monday 26 January 2009, joy yue wrote:
                        > Is there a limitation on the number of rows in
              location
                     table?
                        In my rig,
                        > whatever number of users I use (>2million
       users), I
                     notice the
                        number of
                        > users in location table is 343707, which is far
              less than the
                        number of
                        > users in my test. I thought previously that
       location
                     table saves
                        all the
                        > users in my test.
                        >
                        > Also when I use large number of users
       (>2million),
                     openser pops
                        up an
                        > error: ERROR: registrar:update_contacts:
       invalid
              cseq for aor
                        <xxxx>. Has
                        > anyone saw this before? I am using
       openser1.3.2.


                        Hi joy,

                        no, there is no such a limitiation, we've more
              registered
                     users.
                        The invalid
                        CSEQ error you see is not related to this
              observation. The
                     error
                        means that a
                        device tried to do re-registration (same
       callid), but
                     without properly
                        increasing the Cseq number in the REGISTER
       request -
                     RFC3261 says that
                        requests from the same dialog (like REGISTER +
              re-REGISTER)
                     must have
                        increasing cseq.

                        What db_mode do you use in your usrloc? Do
       you see
              any other
                        errors in the
                        logs?

                        Cheers,


                        Henning


                                 ------------------------------------------------------------------------



                     _______________________________________________
                     Kamailio (OpenSER) - Users mailing list
                     Users@lists.kamailio.org
       <mailto:Users@lists.kamailio.org>
              <mailto:Users@lists.kamailio.org
       <mailto:Users@lists.kamailio.org>>
              <mailto:Users@lists.kamailio.org
       <mailto:Users@lists.kamailio.org>
              <mailto:Users@lists.kamailio.org
       <mailto:Users@lists.kamailio.org>>>

                           http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
                                 http://lists.openser-project.org/cgi-bin/mailman/listinfo/users


                 --    Daniel-Constantin Mierla
                 http://www.asipto.com


                    ------------------------------------------------------------------------

              _______________________________________________
              Kamailio (OpenSER) - Users mailing list
              Users@lists.kamailio.org
       <mailto:Users@lists.kamailio.org>
       <mailto:Users@lists.kamailio.org
       <mailto:Users@lists.kamailio.org>>
              http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
                    http://lists.openser-project.org/cgi-bin/mailman/listinfo/users


          --    Daniel-Constantin Mierla
          http://www.asipto.com


       ------------------------------------------------------------------------

       _______________________________________________
       Kamailio (OpenSER) - Users mailing list
       Users@lists.kamailio.org <mailto:Users@lists.kamailio.org>
       http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
       http://lists.openser-project.org/cgi-bin/mailman/listinfo/users


   --    Daniel-Constantin Mierla
   http://www.asipto.com


------------------------------------------------------------------------

_______________________________________________
Kamailio (OpenSER) - Users mailing list
Users@lists.kamailio.org
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
http://lists.openser-project.org/cgi-bin/mailman/listinfo/users

--
Daniel-Constantin Mierla
http://www.asipto.com