[rabbitmq-discuss] RabbitMQ running at 100% CPU.

Michael Arnoldus chime at mu.dk
Thu Mar 13 14:17:26 GMT 2008


Matthias,

Thank you for your suggestion. There is no strace on Mac OS X, but I  
did find a way to see what the C-program was doing (see below). Most  
of the threads are just waiting (as expected) but a single one seems  
always to be in some kind of tcp_send_error. I haven't yet found a way  
to see if this infinite loop is in the erlang runtime system or the  
error actually reaches rabbit. Anyway, just a status. I'll try to work  
out what I can - Rabbit is still running :-)

Michael


     1002 Thread_2503
       340 writev$UNIX2003
         340 writev$UNIX2003
       299 kevent
         299 kevent
       257 tcp_inet_drv_output
         197 getpeername$UNIX2003
           197 getpeername$UNIX2003
         42 tcp_send_error
           32 inet_reply_error
             16 error_atom
               8 __tolower
                 8 __tolower
               4 pthread_getspecific
                 4 pthread_getspecific
               3 error_atom
               1 dyld_stub_pthread_getspecific
                 1 dyld_stub_pthread_getspecific
             3 hash_put
               3 hash_put
             3 strlen
               3 strlen
             2 atom_hash
               2 atom_hash
             2 driver_mk_atom
               2 driver_mk_atom
             2 dyld_stub___tolower
               2 dyld_stub___tolower
             1 am_atom_put
               1 am_atom_put
             1 erl_errno_id
               1 erl_errno_id
             1 index_put
               1 index_put
             1 inet_reply_error
           4 inet_reply_error_am
             4 inet_reply_error_am
           4 tcp_send_error
           1 __error
             1 __error
           1 driver_send_term
             1 driver_send_term
         8 tcp_inet_drv_output
         4 cerror
           3 cthread_set_errno_self
             3 __error
               3 __error
           1 cerror
         2 _sysenter_trap
           2 _sysenter_trap
         2 inet_reply_error
           2 inet_reply_error
         1 __error
           1 __error
         1 dyld_stub___error
           1 dyld_stub___error
       18 check_async_ready
         6 __spin_lock
           6 __spin_lock
         5 pthread_mutex_unlock
           5 pthread_mutex_unlock
         4 pthread_mutex_lock
           4 pthread_mutex_lock
         2 check_async_ready
         1 spin_lock
           1 spin_lock
       14 erts_deliver_time
         9 gettimeofday
           9 __gettimeofday
             5 __gettimeofday
             4 __nanotime
               4 __nanotime
         4 erts_deliver_time
         1 __commpage_gettimeofday
           1 __commpage_gettimeofday
       13 erts_time_remaining
         9 gettimeofday
           8 __gettimeofday
             7 __nanotime
               7 __nanotime
             1 __gettimeofday
           1 gettimeofday
         4 erts_time_remaining
       9 erts_poll_wait_kp
         7 erts_poll_wait_kp
         2 kevent
           2 kevent
       8 0x38830014
         3 bcmp
           3 bcmp
         3 hash_put
           3 hash_put
         2 atom_cmp
           2 atom_cmp
       8 cerror
         4 cthread_set_errno_self
           3 cthread_set_errno_self
           1 __error
             1 __error
         3 cerror
         1 dyld_stub___error
           1 dyld_stub___error
       7 sweep_proc_bins
         7 sweep_proc_bins
       6 erl_sys_schedule
         6 erl_sys_schedule
       4 schedule
         4 schedule
       3 erts_check_io_kp
         3 erts_check_io_kp
       2 __error
         2 __error
       2 dyld_stub___error
         2 dyld_stub___error
       2 process_main
         2 process_main
       1 _sysenter_trap
         1 _sysenter_trap
       1 copy_shallow
         1 copy_shallow
       1 copy_struct
         1 copy_struct
       1 db_get_hash
         1 db_get_hash
       1 driver_peekq
         1 driver_peekq
       1 dyld_stub_gettimeofday
         1 dyld_stub_gettimeofday
       1 erts_check_io_interrupt_kp
         1 erts_check_io_interrupt_kp
       1 erts_poll_interrupt_kp
         1 erts_poll_interrupt_kp
       1 free_message_buffer
         1 erts_cleanup_mso
           1 erts_cleanup_mso
       1 tcp_inet_drv_input
         1 tcp_recv
           1 tcp_deliver
             1 deq_async
               1 deq_async_w_tmo
                 1 deq_async_w_tmo
On Mar 13, 2008, at 10:49 , Matthias Radestock wrote:

> Michael,
>
> Michael Arnoldus wrote:
>> I've kept it running. I'm sure if I restart erlang everything will   
>> just run perfectly, but I'd rather use this incident to try to  
>> find  the problem if it's possible. However i'm running out of  
>> things to  try, so any suggestions will be welcome.
>
> Try running strace on the Erlang process, to see whether it's stuck  
> in some busy loop making system calls.
>
>> If nobody has any other suggestions I'd be inclined to upgrade to  
>> the  latest version of erlang. Does anybody have any experince  
>> using this  with Rabbit?
>
> Several people have been running with R12B in their development  
> environments without any problems. It should be fine, but we haven't  
> done any thorough testing with it.
>
>
> Matthias.





More information about the rabbitmq-discuss mailing list