gpt4 book ai didi

linux 性能记录 : difference between count (-c) and frequency (-F) options

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:46:27 26 4
gpt4 key购买 nike

我试图了解 perf record 的 -c 和 -F 选项的真正作用,但我无法解释我所看到的。我正在运行这些命令:

perf record -a -F <frequency> sleep 1

perf record -a -c <count> sleep 1

尝试不同的频率计数 值。我得到的结果是 the following

在第一个表中我设置了频率,在第二个表中设置了计数。频率和计数如何影响事件的数量?我认为事件的数量与频率和计数无关,但显然并非如此。 perf 实际上做了什么?

最佳答案

Countfrequency是在使用 perf record 时调整采样率的两个基本开关(在内部进行采样)。

计数

当你运行 perf record -c <number> ,您正在指定采样周期(其中“数字”是采样周期)。即,对于事件的每“第”次出现,样本将被记录。当跟踪事件数量的性能计数器溢出时,将记录样本。

我猜您是在 perf report 的帮助下获取事件数的.注意 perf report永远不会报告事件的实际数量,而只是一个近似值。随着您不断调整采样周期,事件的数量将不断变化。 perf report只会读取 perf.data归档perf record生成,并根据生成的文件的大小,它假设记录的样本数(通过了解内存中记录的样本的大小)。实际记录的事件数通过-

Number of events = Fixed Sample Period * Number of samples collected

其中固定采样周期是您用 perf record -c 指定的.

频率

这是表达采样周期的另一种方式,即指定每秒采样的平均速率(频率)——您可以使用 perf record -F 来实现。所以perf record -F 1000每秒将记录大约 1000 个样本,这些样本将在与事件对应的硬件/PMU 计数器溢出时生成。这意味着内核将动态调整采样周期以确保 sampling过程遵守采样频率。

This采样周期是如何动态更新的。

采样频率越高,收集的样本数量就越多(几乎成比例)。

运行命令可以看到采样周期的变化-

sudo perf report -D -i perf.data | fgrep RECORD_SAMPLE

只要采样周期不断变化,事件总数就会随着采样周期的变化而不断增加。并且当采样周期保持固定时,事件总数保持固定并由上面显示的公式获得。在这两种情况下,事件总数都是近似值。

关于linux 性能记录 : difference between count (-c) and frequency (-F) options,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53449001/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com