呼叫系统系统性能决定呼叫处理的cps,当然cps决定系统效率,决定公司营收。尽管kamalio处理性能已经非常强大,但是在实际生产中仍然需要面对性能瓶颈的问题。如果从比较高层的linux技术讨论来看,系统级优化可以从4个方面进行处理,包括了系统文件描述,虚拟内存,网络接口,存储介质/IO接口设置和TCP/IP的设置。这些设置和优化和Kamailio应用的优化也影响着kamailio的执行性能。
因此,为了突破性能的瓶颈,kamailio/opensips 不仅仅需要从软件自己优化,同时也要考虑外部软硬件环境的优化。
对Kamailio进行性能优化可以提高其处理呼叫和消息的效率,提高系统的稳定性和可靠性。研究人员Alejandro Martin针对开源软交换实现的高可靠性架构有非常详细的解释,读者可以参考此论文。 以下是一些常见的Kamailio或者OpenSIPS的性能优化的一些建议方法:
1.调整Kamailio的参数:可以通过修改Kamailio的参数来优化其性能,如增加共享内存大小、调整缓存大小、定时器,调整进程数等。这些参数可以在Kamailio的配置文件中进行设置。Performance Tuning Section 参数特别重要。读者一定要吃透,深入到灵魂中!
2.使用多核CPU:Kamailio可以使用多核CPU来提高其并发处理能力。可以通过配置Kamailio的多进程模式来利用多核CPU,如使用fork模式、worker模式等。
3.使用连接池:Kamailio可以使用连接池来减少连接的创建和销毁,从而提高性能。可以使用Kamailio的数据库连接池模块来实现连接池。
4.使用缓存:Kamailio可以使用缓存来减少数据库查询和计算的次数,从而提高性能。可以使用Kamailio的缓存模块来实现缓存。
5.使用异步I/O:Kamailio可以使用异步I/O来提高其并发处理能力。可以使用Kamailio的异步I/O模块来实现异步I/O。
6.使用内存池:Kamailio可以使用内存池来减少内存的分配和释放,从而提高性能。可以使用Kamailio的内存池模块来实现内存池。
以上优化方式需要数据支撑,用户可以通过各种工具采集数据风险问题。性能工具也非常重要。
7.使用性能分析工具:可以使用性能分析工具来分析Kamailio的性能瓶颈,如使用gprof、perf, Nagios, smartmontools, Stacer 等工具来分析Kamailio的CPU使用情况、内存使用情况等。
其他出面的优化:使用比较新的操作系统,新一点的操作系统相对内核更新也很快,系统性能可以得到改善。使用比较新的或者更强大的网卡,选择比较好的存储介质,读写性能能够得到改善。另外,SIP包语法解析优化,使用比较新的TLS-1.3版本,debug关闭等方式,均衡负载,DNS查询设置。以下是针对kamailio的性能进行的测试实验数据。
总之,Kamailio的性能优化可以从多个方面入手,通过调整参数、使用多核CPU、使用连接池、缓存、异步I/O、内存池等或者其他层级的外部手段和技术手段来提高其性能。
参考资料:
http://www.kamailio.org/docs/openser-performance-tests/
www.sip.org.cn
www.asterisk.org.cn
https://linuxconfig.org/linux-performance-optimization-tools-and-techniques
www.dinstar.cn
Ramesh Krishnamurthy,Performance Evaluation of Multi-Core, Multi-Threaded SIP Proxy Servers (SPS)
Alejandro Martin,A Proposal for A High Availability Architecture for VoIP Telephone Systems based on Open Source Software
https://www.brendangregg.com/linuxperf.html
作者:james.zhu | 来源:公众号——SIP实验室
版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。