Linux調度器
㈠ Linux 性能調優之配置CPU調度策略和可調參數
當前實驗環境
Scheling Processes(進程調度):單個CPU同一時間僅可用執行一個進程!Linux系統通過多任務同時運行多個進程,實現交替執行這些進程以提供公平的CPU時間共享。
調度演算法:操作系統通常採用基於優先順序的搶占式調度演算法,內核通過進程調度器決定哪個進程在特定時間運行,以實現快速確定下一個進程並確保公平性、響應性、可預測性和可擴展性。
調度策略與優先順序:Linux系統調度器基於調度策略和調度優先順序決定進程執行順序。策略分為非實時策略與實時策略,非實時策略適用於大多數通用計算系統和應用程序,實時策略適用於對時間敏感的系統和應用程序。
進程優先順序:優先順序分為靜態、動態與實時三種。靜態優先順序在進程創建時分配,動態優先順序隨CPU資源調整,實時優先順序固定以確保實時任務按時完成。
配置進程優先順序:通過ulimit、/etc/security/limits.conf配置靜態與動態優先順序,nice或renice命令調整動態優先順序。
實時調度策略:欄位說明包括pri、rtprio與FF,分別表示靜態優先順序、實時優先順序與實時策略。實時調度器適用於具有實時要求的任務,包括截止時間調度器。
非實時調度策略:默認調度器為完全公平調度器(CFS),適用於公平CPU時間分配。CFS調度器使用紅黑樹數據結構跟蹤任務的虛擬運行時間,決定下一個任務執行。
內核調度策略可調參數:通過sysctl命令調整CFS調度演算法,例如sched_latency_ns、sched_min_granularity_ns、sched_migration_cost_ns等參數優化性能。
調整調度策略:使用命令行工具如chrt與taskset設置進程的調度策略與優先順序,實現進程的資源優化與任務優先順序調整。