我有一個關於Linux中的swapper任務(空閒任務)的查詢。我有一個有16個CPU核心的系統。使用taskstats,我可以發現swapper任務正在覈心0上運行。 我有一種印象,即每個CPU內核都需要一個交換任務才能在該CPU沒有其他可運行任務時運行。如果它是真的,那麼爲什麼swapper任務只顯示在cpu0上運行,如果它錯了,那麼當沒有可運行的任務時,其餘的cpu核心會執行什麼操作?多CPU核心上的Swapper任務
期待您的幫助。謝謝。
我有一個關於Linux中的swapper任務(空閒任務)的查詢。我有一個有16個CPU核心的系統。使用taskstats,我可以發現swapper任務正在覈心0上運行。 我有一種印象,即每個CPU內核都需要一個交換任務才能在該CPU沒有其他可運行任務時運行。如果它是真的,那麼爲什麼swapper任務只顯示在cpu0上運行,如果它錯了,那麼當沒有可運行的任務時,其餘的cpu核心會執行什麼操作?多CPU核心上的Swapper任務
期待您的幫助。謝謝。
空閒任務作業就像你說的那樣在沒有別的東西可以運行時運行,所以CPU不會耗盡指令。
所以這意味着在一個具有單核的系統中,空閒進程確保CPU總是有事情做,所以它不會停止。
在多CPU /核心系統上,情況也是如此,但是某些CPU允許系統將某些內核置於空閒模式以節省功耗。在這種情況下,只需要保持單個內核處於空閒狀態,因爲那時內核切換到內核時,它可以按需喚醒更多的內核。
請注意,以上是整個事實的簡化版本。只要相信內核做正確的事情,它通常知道它在做什麼,並且只想要最適合你的東西:-)
你爲什麼在意?我%t是核心的業務! –
我很在乎,因爲它在我的一個項目工具中很有用。我有兩種方法可以知道任何CPU內核的空閒時間。 1)通過taskstats找出在每個核心上運行的swapper任務的時間2)讀取/ proc/stat 我已經選擇了第一個,因爲taskstats已經在我的項目中實現了,選擇第二個是開銷。 – tshah06