Kamailio性能问题排查手段-core模块的时延报告和性能基准测试模块

服务器的性能是服务器稳定的主要指标。服务器的性能排查有很多方法。本章节介绍了几种关于Kamailio性能排查的机制,这些工具用于排查Kamailio处理速度变慢的问题。当然,我们首先推荐的是,如果用户有大量的流量,请确保工作进程的数量足够大(请参阅历史文档中关于children、tcp_children和sctp_children核心参数介绍)。对于相当大的订阅者用户基数的服务器配置来说,一个比较合适的设置值应该是16。

如果系统有太多的工作进程则会增加上下文切换的开销,因此用户必须考虑优化其他导致延迟真正原因,例如在内存中增加更多的缓存,数据库中使用更好的索引,支持周边的缓存DNS服务器等方式。系统处理过程中可能在很多节点产生异常负载,例如我们前面提到的数据库读写,存储空间访问等等。在kamailio中,因为每个action执行性能差也可能导致性能问题。因此,如果需要细节的跟踪需要特别的工具来实现。今天,笔者介绍两个系统默认支持的两个主要排查工具:通过core模块设置延迟时间打印异常,使用基准测试模块计算某个action的执行时间。

Core模块时延打印报告

核心模块可以跟踪执行配置文件操作或数据库查询所需的时间,并且在持续时间高于配置的阈值时输出日志消息。此功能可通过几个核心参数阀值进行控制:

● latency_limit_action-将其设置为大于0的值(毫秒表示),报告在配置文件的操作(action)中的花费时间超过了此设置值

● latency_limit_db-将其设置为大于0的值(毫秒表示),报告SQL查询花费的执行时间超过此设置值

● latency_log-打印与延迟报告相关的消息日志级别下面的示例展示如何设置这些参数报告耗费时长超过100ms的action,耗费时长超过200ms的数据库查询操作,以及日志级别为L_WARN(0)的示例:

latency_limit_action=100 // 超过100毫秒就打印报告

latency_limit_db=200  // 超过DB查询花费时间就打印报告

latency_log=0

性能基准测试模块 

该模块增加了一个测试基准机制,可以测试配置文件中的路由块所花费时间。这个模块可以支持更底层,更细节的某个执行流程所花费的时间。该模块的实现文档可在以下链接中找到:

http://kamailio.org/docs/modules/4.2.x/modules/benchmark.html

这个模块和log_latency_action启用的核心功能不同,这个模块使用基准测试跟踪每个action操作的执行时间,配置文件开发人员可以决定需要分析的具体action流程。它通过在配置文件中设置一个基准点来跟踪,从这个基准点开始计时并执行到需要打印的点,结合持续时间来跟踪流程。如果用户怀疑认证流程的执行有问题,执行时间异常等问题。用户要获取用户身份验证的路由[AUTH]执行时间,需要将此路由块的执行插入基准测试流程中:

bm_start_timer(“auth”);  // 启动基准测试点

route(AUTH);  // 需要跟踪的模块

bm_log_timer(“auth”); // 打印输出点

使用基准模块参数loglevel设置的日志级别,统计数据写入到了syslog。该模块可以保留许多重复的详细信息,打印平均统计数据。

以上笔者简单介绍了通过core模块设置延迟时间打印异常,使用基准测试模块计算某个action的执行时间来判断Kamailio的性能执行状态。后续,笔者会介绍其他的性能测试手段。

作者:james.zhu
来源:SIP实验室
原文:https://mp.weixin.qq.com/s/LkBWrBqWxTcLjZjrUmiP7Q

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

  • 突破kamailio/OpenSIPS性能瓶颈的8个方向

    呼叫系统系统性能决定呼叫处理的cps,当然cps决定系统效率,决定公司营收。尽管kamalio处理性能已经非常强大,但是在实际生产中仍然需要面对性能瓶颈的问题。如果从比较高层的li…

    2023年5月26日
  • 什么是路由?Kamailio中的路由

    路由这个词,一般人可能既熟悉又陌生。熟悉的是,基本上家家都有个路由器;陌生的是这个路由器跟我们这里说的路由是一个东西吗? 路由,对应的英文是Route,即选路的意思。家用的路由器也…

    2023年8月3日
  • kamailio SIP安全基础讨论

    kamailio 软交换是运营级VOIP平台,安全问题是用户部署中面临的挑战。笔者在以前的文章中针对SIP安全输出了很多的文章,包括了使用外部网元SBC来保证UC的安全等传输。 我…

    2024年4月11日
  • Kamailio UAC 模块简述

    Kamailio 是一款非常强大的 SIP 代理服务器,Kamailio 一般转发 SIP 信令,不主动产生和发送 SIP 信令。但有时您可能希望 Kamailio 向 IPPBX…

    2025年3月20日
  • kamailio内置SIP解析器讨论

    针对SIP代理的需求,Kamailio支持了内置的SIP解析器,解析器具备以下处理能力: ● 快速的进程 – 与通常只处理少量dialog的客户端用户代理不同,SIP服…

    2024年4月15日
  • 如何实现kamalio交叉编译

    交叉编译是在一个平台(主机)上为另一个不同的平台(目标)编译程序的过程。这在嵌入式开发中非常常见,因为目标设备通常不具备编译大型项目所需的资源。Kamailio是一个开源的SIP服…

    2024年3月7日