流基本日志元素: 类型原子和类型已排序
36227
Created On 09/25/18 19:20 PM - Last Modified 06/01/23 09:21 AM
Symptom
在流基本日志中, 您可能会注意到类似以下内容的条目:
== 2017-10-04 11:18:02.971 +0000 == 在进入
阶段收到的数据包, 标记 0,类型已
排序
== 2017-10-04 11:18:02.971 +0000 ===
在 slowpath 阶段收到的数据包, 标记 3053211477,类型原子
== 2017-10-04 11:18:02.971 +0000 ===
在 fastpath 阶段收到的数据包, 标记 16624,类型原子
原子和有序意味着什么?
Resolution
这些术语是指 CPU 内核从中提取关联的数据包处理任务的工作队列类型。
原子队列的工作必须由一个单一的 CPU 内核执行。订购的工作队列可以分布在多个 CPU 内核中。("原子" 的根/词源意义是不可分割的(或更确切地说,非可切割).
您可能已经知道从文章入门: 流程的基础, 每个 dataplane CPU 内核处理匹配捕获筛选器的数据包将生成自己的流日志, 名为pan_task_X. log, 其中 X 是核心号码. 由流基本调试日志生成的文件的确切数目将取决于所跟踪的会话的类型和数量。
标识与任务关联的工作队列类型可能不会为您提供可操作的疑难解答信息。它告诉你的是, 某些离散序列的数据包处理任务可以由第一个可用的 CPU 内核拾取。(新的数据包?谁有空?给你!按顺序进行下一项。
对于某些任务序列, 启动作业完成它的相同 CPU 内核效率更高--特定的工作是 "原子", 意思是不可分割的。它不能被 ' 切割 ' 和分布在多个核心。