色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux之CPU調度策略和CPU親和性

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2024-12-05 16:38 ? 次閱讀

一、調度策略

調度進程

單個 CPU一次只能執行一個進程,雖然 Linux 系統通過使用多任務同時處理多個進程,但當多個進程同時運行在一個CPU 上時,它通過交錯執行這些進程。

內核使用進程調度器來決定在某一時間點上哪個進程在運行。調度器必須平衡幾個選項:

快速決定下一個該運行的進程

進程可以公平的活動 CPU 時間,但高優先級的進程會活動更多的運行時間并且可以搶占低優先級的進程。

響應有力的交互式應用程序

在各種工作負載下可預測和可擴展

進程優先級

在 Linux 中,調度器根據分配給每個線程或進程的調度策略和優先級來控制執行順序。

這些調度策略分為:實時策略和非實時策略。

調度策略

RHEL提供六種調度策略,分為實時調度策略和非實時調度策略。

c8ab4f12-afde-11ef-93f3-92fbcf53809c.png

1、實時
SCHED FIFO:不帶時間分片的先進先出策略。擁有該策略的進程會一直運行,直到被I/O 阻塞或是更改優先級的進程搶占。
SCHED RR:該策略使用時間片循環調度算法,具體同樣優先級的任務輪詢執行,直到耗盡預定的時間片。

2、非實時
SCHED_NORMAL(OTHER):linux 系統中大多數進程使用的默認策略。
SCHED BATCH:適合批量處理的進程。
SCHED IDLE:該策略有利于運行低優先級應用程序,

CFS 調度
從 2.6.23 版本的內核開始,CFS 就成為默認的調度程序。CFS 使用紅黑樹來管理可運行的進程。它是基于虛擬時間(virtualtime)。
擁有虛擬時間最長,等待時間最長的進程將獲得使用 CPU。該進程在執行期間,虛擬時間將開始減少。

DEADLINE 調度
在 RHEL8 中,引入了一個新的調度策略 SCHED DEADLINE。該調度主要應用在實時系統中,保證實時任務的有效調度。

Deadline 調度使用三個參數:周期、期限和運行時間(最壞情況的運行時間)

周期:如果一個視頻處理任務必須每秒處理60幀,新的幀每隔 16ms(毫秒)會到來,則周期為 16ms。

期限:指任務需要交付結果的最長時間,必須在這個期限結束前完成任務。

運行時間:表示處理一個任務的最長時間。

c8b62d9c-afde-11ef-93f3-92fbcf53809c.png

注意:單位都為 ns。
上面的例子表示:該任務將在每 16.6ms內確保得到 5ms的CPU 時間來運行,并且5ms 的 CPU 運行時間都可以在 10ms 期限內保證可用。

使用命令行方式更改調度選項

管理員可以使用 chrt 命令查看某個進程(-p)的策略和優先級。同時當使用 chrt 開啟一個新程序時,需要制定策略和優先級,如果未指定策略,默認是 SCHED RR.

策略選項:

-b 指定為 SCHED BATCH
-f 指定為 SCHED FIFO
-i 指定為 SCHED IDLE
-o 指定為 SCHED NORMAL(OTHER)
-r 指定為 SCHED RR
-d 指定為 SCHED DEADLINE

例如為某個新進程指定策略和優先級:

c8cb16f8-afde-11ef-93f3-92fbcf53809c.png

使用 systemd 的方式更改調度選項

在服務啟動時指定調度策略和優先級,需要在[Service]段落中指定:

CPUSchedulingPolicy:設置服務的CPU 調度策略。other,batch,idle,fifo,rr。(當前不支持 deadline 策略)

CPUSchedulingPriority:設置優先級,對于實時調度策略,范圍是1(最低)-99(最高)

c8da9ee8-afde-11ef-93f3-92fbcf53809c.png


完成后,需要重啟 systemctl daemon-reload,然后再重啟服務

二、CPU親和性

Pinning 進程

默認情況下,調度策略可以將進程放置在任何一個CPU上去執行,但為了增加效率,可以將某個進程與哪些 CPU 進行綁定,提供了緩存命中率,提供了整體性能。

c8f20092-afde-11ef-93f3-92fbcf53809c.png

基于 systemd 的服務提供了一種方便的方式,可以在服務單元中的[Service]段落中使用CPUAffinity,設置,該參數接受一個以空格為分隔符的 CPU 索引列表,例如 0 代表第-個CPU,1代表第二個CPU。

使用 tuna 命令查看CPU 綁定
yum install tuna

選頂: -t -P (大寫)查看特定線程的信息,例如調度策略,優先級,CPU綁定等

c8fd5c94-afde-11ef-93f3-92fbcf53809c.png

使用 cgroup 管理 CPU 親和性

在 NUMA 架構中,一個 NUMA 節點上包含了連接在該節點上的 CPU,內存等硬件設備。由此也引出了 CPU 親和性的概念。即CPU 訪問同一個節點中的內存速度最快效率最高。利用 lscpu 命令查看 CPU 處于哪個 NUMA 節點中。

NUMA

NUMA,非一致性內存訪問。將不同的CPU核心劃分到不同的 node 節點。每個 node都有自己的內存控制器,允許不同 node 中的 CPU 只訪問屬于同一個 node 的內存區域。
而不同的 node 節點通過 QPI進行通信,如圖:

c90a3716-afde-11ef-93f3-92fbcf53809c.png

利用 cpuset cgroup 控制器可以將程序綁定到特定的核心上。cuset 目錄已經被掛載到了/sys/fs/cgroup 目錄下。管理員可以手工對該目錄下的文件進行讀寫(修改)。

cpuset.cpus:指定 cgroup 中任務可以訪問的CPU 數。“-”代表連續的 CPU 數。

Cpuset.mems:指定 cgroup 中的任務可以訪問的 NUMA 內存節點。

鏈接:https://www.cnblogs.com/OpenSourceSite/p/18567209

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10854

    瀏覽量

    211574
  • Linux
    +關注

    關注

    87

    文章

    11292

    瀏覽量

    209323

原文標題:Linux之CPU調度策略和CPU親和性

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    嵌入式Linux系統CPU控制常見辦法測試

    不是實時。為了保證實時,可以根據應用場景,對CPU實行更加精確的控制。常見的辦法有,進程CPU隔離、CPU
    的頭像 發表于 11-26 14:17 ?5104次閱讀

    Linux內核進程管理與調度策略優化與實踐分析

    相關的優先級,如果有多個可執行的進程等待CPU資源,那么具有更高優先級的進程將優先被調度執行。今天就給大家講解一下Linux內核中的進程管理和調
    發表于 05-08 09:42 ?1130次閱讀
    <b class='flag-5'>Linux</b>內核進程管理與<b class='flag-5'>調度</b>:<b class='flag-5'>策略</b>優化與實踐分析

    【Nanopi2試用體驗】高級(十):進程綁定CPU核心

    NanoPi2具有4個CPU核心。當運行一個程序時,想讓它運行在特定的CPU核心上。那就要改變CPU親和性(affinity)了。那么什么是CPU
    發表于 02-03 17:28

    Linux系統調度簡介

    )線程的情況下,只有當系統產生軟時間中斷時,CFS才會被調用來判斷下一個執行的線程并使其占有CPU開始執行,這個現象看起來就好象是Linux調度策略簡單的給每個線程分配了10ms的時間
    發表于 01-18 14:12

    干貨分享:基于嵌入式Linux中進程調度實現方法

    可運行隊列中。Linux 的進程調度采用了動態優先級 和權值調控的方法,既可實現上述三種調度策略,又能保證實時進程總是比普通進程優先使用 CPU
    發表于 12-10 14:17

    CPU頻率調度策略有哪些?

    CPU頻率調度策略有哪些?
    發表于 03-10 06:54

    技術術語CPU術語篇

    技術術語CPU術語篇
    發表于 06-30 19:45 ?1227次閱讀

    基于GPU/CPU的流程序多粒度劃分與調度

    并實現了面向GPU/CPU混合架構的數據流程序任務劃分方法和多粒度調度策略,包括任務的分類處理、GPU端任務的水平分裂和CPU端離散任務的均衡化,構造了軟件流水
    發表于 11-23 14:29 ?0次下載

    一種靈活高效的虛擬CPU調度算法

    目前,虛擬化已經廣泛應用于數據中心,但主流的虛擬CPU調度策略并沒有實現對I/O性能的保障,尤其是當延時敏感型負載的虛擬機和計算敏感型負載的虛擬機競爭CPU資源時,其性能顯著下降.針對
    發表于 01-02 17:51 ?0次下載

    linux CPU是這樣動態調頻

    針對sep4020的linux低功耗研究也有一段時間了,基本把低功耗的實現方式想清楚了(主要分成機制和策略),這段時間的工作主要在機制上。暫時想實現的主要的機制有:cpu級,設備驅動級,系統平臺級。管理顆粒度不斷遞增,形成三駕馬
    發表于 04-22 17:26 ?1625次閱讀
    <b class='flag-5'>linux</b> <b class='flag-5'>CPU</b>是這樣動態調頻

    Linux 中線程與 CPU 核的綁定

    最近在對項目進行性能優化,由于在多核平臺上,所以了解了些進程、線程綁定cpu核的問題,在這里將所學記錄一下。不管是線程還是進程,都是通過設置親和性(affinity)來達到目的。對于
    發表于 04-02 14:40 ?1083次閱讀

    Linux CPU的性能應該如何優化

    Linux系統中,由于成本的限制,往往會存在資源上的不足,例如 CPU、內存、網絡、IO 性能。本文,就對 Linux 進程和 CPU 的原理進行分析,總結出
    的頭像 發表于 01-18 08:52 ?3375次閱讀

    Linux發行版CPU漏洞及修復

    Linux 操作系統發行版,其深度集成與優化阿里云基礎設施,旨在為阿里云 ECS 客戶提供豐富功能、高性能且穩定的操作系統服務,歡迎大家使用。) 然而在測試過程中發現很多子系統例如網絡子系統的性能與 CPU 調度性能密切相關
    的頭像 發表于 10-08 14:54 ?2264次閱讀

    容器進程調度時是該優先考慮CPU資源還是內存資源

    當然實際中 k8s 的調度策略不是這么簡單的,系統默認的 kube-scheduler 調度器外還有直接指定Node主機名、節點親和性、Pod親和性
    的頭像 發表于 08-16 18:20 ?1352次閱讀

    如何將進程與 CPU 進行綁定

    Linux 系統提供了一個名為 sched_setaffinity 的系統調用,此系統調用可以設置進程的 CPU 親和性。我們來看看 sched_setaffinity 系統調用的原型。
    發表于 10-26 10:29 ?516次閱讀
    主站蜘蛛池模板: 97久久超碰中文字幕| 久久永久免费视频| 熟妇的味道HD中文字幕| JIZZ幻女大全| 嫩草影院未满十八岁禁止入内| 影音先锋 av天堂| 僵尸女av| 亚洲视频免费在线观看| 国产一区内射最近更新| 午夜视频在线观看国产| 国产成人精品s8p视频| 色综合五月激情综合色一区| 宝贝你骚死哥了好爽| 欧美日韩久久久精品A片| 97公开超碰在线视频| 美女禁处受辱漫画| 征服艳妇后宫春色| 久久天天躁狠狠躁夜夜呲| 一品探花论坛| 久久欧洲AV无码精品色午夜麻豆| 野花香在线观看免费高清播放视频| 黄色a三级三级三级免费看| 亚洲精品91| 狠狠爱亚洲五月婷婷av| 亚洲欧美日韩在线码不卡 | 暖暖 免费 高清 日本 在线| 91精品国产91热久久p| 妺妺窝人体色777777野大粗| 99re6久久热在线视频| 欧美精品华人在线| 澳大利亚剧满足在线观看| 日本人作爰啪啪全过程| 动漫H片在线播放免费高清| 十九岁在线观看免费完整版电影| 国产VA精品午夜福利视频| 我的美女奴隶| 国产亚洲精品首页在线播放| 亚洲男人97色综合久久久| 久久九九日本韩国精品| 最新亚洲中文字幕在线观看| 男女生爽爽爽视频免费观看 |