[OpenSIPS-Users] OpenSIPS maximum performance in a multiprocessor machine (SMP)

Italo Dacosta idacosta at gatech.edu
Wed Sep 16 16:19:27 CEST 2009


Sau'l Ibarra wrote:
> Yo may also install irqbalance, so that interrupts get balanced across
> all the cores.

Saul: thanks for the suggestion. I installed irqbalance in the proxy.
However, I couldn't see any performance improvement. The only thing I
noticed is that now most of the irqs are handled by CPU 0 instead of CPU
7. My guess is that most of the interrupts are being generated by the
network card. Because there is only one network card, irqbalance can not
distribute the irqs among the CPUs. It seems that irqbalance has not a
configuration file that I could modify to try to balance irqs in this
scenario.

Bogdan-Andrei Iancu wrote:
> Note that usrloc has data structures that are shared between all procs. 
> Sharing means locking for synchronized access. By default usrloc uses a 
> hash with 512 entries, each entry having its one lock.
> Typically access to such shared data may be a bottleneck - procs 
> blocking in lock trying to access some resource. So, to increase the 
> level of parallelism and hash entry collisions, you could try increase 
> the size of this hash table:
>        http://www.opensips.org/html/docs/modules/devel/usrloc.html#id271533
> Try a value of 12 for example.

Bogdan: thanks for your suggestions and the information provided. I
changed the usrloc hash table size to 12 but I didn't notice any changes
in the proxy's performance. I am using a small number of callees (around
16), so I don't think that this operation is causing the performance
bottleneck.

My next step is to profile OpenSIPS with oprofile. Any other suggestions
are welcome.

Thanks,
ID




More information about the Users mailing list