概述

l雷竞技RouterOS v7支持在多个进程之间拆分任务。
有一个。”主要任务,它可以启动/停止子任务,并在这些子任务之间处理数据。每个子任务都可以分配“私有”内存(只有这个特定的任务可以访问)和“共享”内存(所有路由任务都可以访问)。

可以拆分的任务列表:

  • print命令的处理;
  • 整个OSPF协议处理;
  • 整个RIP协议处理;
  • 静态配置处理;
  • 路由策略配置;
  • BGP连接和配置处理;
  • BGP接收(每个对等体一个任务或按特定参数分组);
  • BGP发送(每个对等体一个任务或按特定参数分组);
  • 无伤大雅的更新。

边界网关协议子任务

BGP的接收和发送可以通过特定的参数划分为子任务,例如可以为每个对等体运行输入,也可以将所有对等体的输入分组在主进程中运行。这个按子任务划分的操作由input.affinityoutput.affinity中的参数配置/路由/边界网关协议模板通过在内核较少的设备上使用亲和值来提高性能是可能的,因为在任务之间共享数据比在一个任务中处理相同的数据要慢一些。例如,在单核或双核设备上,在主进程或实例进程中运行输入和输出将提高性能。

BGP最多可以有100个唯一的进程。


可以使用以下命令监视所有当前使用的任务及其分配的私有/共享内存:

/路由/数据/过程/打印


样例输出:

[admin@BGP_MUM] /routing/stats/process> print interval=1任务、私有内存块、共享内存块、pss、rss、vm、退休、id、pid、rpid、进程时间、内核时间、当前繁忙、最大繁忙、当前calc、MAX-CALC #任务PRIVATE-M SHARED-M PSS RSS vm ID PID R过程——KERNEL-TI坏蛋——MAX-BUSY CUR mib - MAX-CALC 0路由表11.8 51.4 42.2 20.0 19.8 mib mib mib mib主要195 0 15 s470ms 2 s50ms 20 ms 1 s460ms 20 ms 35 s120ms肋连接网络1 fib 2816.0简约0 51.4 8.1 27.4 mib mib mib fib 255 1 5 s730ms 7 m4s790ms 23 s350ms 23 s350ms 2 ospf 512.0简约0 51.4 3151.0 14.6简约mib mib ospf 260 1 20 ms 100 ms 20 ms 20 ms连接网络3幻想256.0简约0 51.4 1898.0 5.8简约mib mib幻想261 1 40 ms 60 ms 20毫秒20女士4配置和报告51.4 28.4 4096.0 9.2 512.0简约简约mib mib mib静态262 1 3 s210ms 40毫秒220 ms 220 ms 5把512.0简约0 51.4 3151.0 14.6简约mib mib rip 259 1 50 90 ms女士20 ms 20 ms 6连接网络路由策略配置51.4 6.2 2250.0 768.0 768.0简约简约简约mib mib政策256 1 70 ms 50 ms 20 ms 20 ms 7边界网关协议服务768.0简约0 51.4 3359.0 14.9简约mib mib边界网关协议257 1 4 s260ms 8 s50ms 30 ms 30 ms连接网络8 BFD服务512.0简约0 3151.0 14.6简约mib 51.4 mib 12 258 80 40毫秒女士20 ms 20 ms连接网络9 BGP输入10.155.101.232 8.2MiB 6.8MiB 17.0MiB 39.1MiB 51.4MiB 20 270 1 24s880ms 3s60ms 18s550ms 18s550ms BGP输出10.155.101.232 10全局内存256.0KiB Global 0 0



路由表更新机制

下图试图以更友好的方式解释路由表更新机制是如何工作的。

路由协议通过以下步骤不断循环:

  • 主要进程等待来自其他子任务的更新(1);
  • 主要"开始计算新的路线(2..4),如果:
    • 收到来自子任务的更新;
    • 协议没有公布所有的路由;
    • 配置发生变化或链路状态发生变化。
  • 在计算新路由(5)时,发生以下事件:
    • 所有收到的更新都应用到路由上;
    • 正在确定网关可达性;
    • 递归路由正在解析;
  • 发布"事件被称为where "当前的“路线正在公布。在这个阶段,”当前的路由不会改变,但协议仍然可以接收和发送更新(6)。
  • 清理和释放未使用的内存(7)。在这个步骤中,所有不再在new中使用的内存。当前的表被删除(路由,属性等)。

考虑“更新"和"当前的作为两份路由表,其中当前的“表(2)是目前使用的,”更新(1)是下一个发布事件(3和4)中要发布的候选路由表。这种方法防止协议用缓冲的更新填充内存,而主要“过程正在进行”发布,相反,协议将最新的更新直接发送到“主”进程,然后将新的更新复制到“更新”表。稍微复杂一点的是OSPF,它内部有类似的过程来选择当前的OSPF路由,然后将这些路由发送到主要"以作进一步处理。