簡體   English   中英

監視cgroup的Linux性能事件

[英]Monitoring Linux performance events for cgroups

我目前正在嘗試監視系統的一些硬件事件(6個硬件計數器和24個CPU)以及它的cgroup。 我在這里舉例說明LLC加載和cpu-cycles事件。

為此我使用perf命令。

但是,當考慮空閑cgroup(實際上對應於僅運行bash的docker容器)並為cgroups或系統范圍監視運行perf ,似乎在兩種情況下我得到的cpu-cycles數量大致相同:

$ sudo perf stat  -e LLC-loads,cpu-cycles -a sleep 60
$ sudo perf stat -e instructions,cpu-cycles   --cgroup=docker/b1cd988201789e55128393cff5ffbf37b0d6efec0fc70e1b716163b4b1f91f1f -a sleep 60

我期待我的cgroups的cpu周期數量減少。 (當提供--cpu=0-23-a選項時,會獲得相同的結果。)

我在這里錯過了什么嗎?

我想知道--cgroup選項是如何工作的。 最后,它是否僅針對某些事件進行了配置?

提前謝謝您的時間!

好的,我在文檔中找到了答案,但不清楚:

-G name, - cgroup name monitor僅在名為“name”的容器(cgroup)中。 此選項僅在per-cpu模式下可用。 必須安裝cgroup文件系統。 屬於容器“name”的所有線程在受監視的CPU上運行時都會受到監視。 可以提供多個cgroup。 每個cgroup應用於相應的事件,即第一個cgroup到第一個事件,第二個cgroup到第二個事件,依此類推。 可以使用例如-G foo ,, bar來提供空cgroup(始終監視)。 Cgroup必須具有相應的事件,即它們總是引用先前在命令行上定義的事件。

它實際上意味着為了從同一個perf命令中的1個cgroup中獲取多個事件,我應該列出該cgroup的名稱與事件數量一樣多次。

編輯示例(必須使用長容器ID,但為了清楚起見,我在這里使用短ID):

sudo perf stat -e instructions,cpu-cycles,LLC-loads   --cgroup=docker/b1cd,docker/b1cd,docker/b1cd -a sleep 60

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM