linux核心 資源管理

2021-08-07 18:33:42 字數 1443 閱讀 3741

1. linux核心資源劃分功能:劃分cpu、記憶體空間、i/o等的cgroup(control group),以及劃分pid、pic、網路、mount命名空間的namespace。

2. linux的排程策略(scheduling policy):tss(time sharing system,分時系統)和實時系統這兩種。

一方面,一般的程序是通過分時執行的。也就是說,使用 cpu 的時間達到分配給程序的時間(時間片)時,就會切換到其他程序。這種分時執行的排程策略稱為 tss。

另一方面,在實時制約較嚴格且要求保證實時的處理中,就需要指定靜態的執行優先順序,並嚴格按照執行優先順序進行排程。對這種對應答性有要求的程序,可以使用實時排程策略。另外,與 tss 排程策略的程序相比,cpu 將優先分配給使用實時排程策略的程序。

在 linux 中,程序的靜態優先順序為 0 ~ 99。tss 排程策略的優先順序為 0,實時排程策略的優先順序可以指定的範圍為 1 ~ 99。

3.  fair group scheduling 是 cgroup 的資源管理之一,用來控制 linux 核心的程序排程程式進行的 cpu 時間分配。與其他 cgroup 進行的資源管理一樣,可以對每個特定程序組進行資源(cpu 分配時間)管理。使用這個功能,就可以在分組間對 cpu 分配時間進行調整。

另外,fair group scheduling 使用的是 linux 2.6.23 以後引入的 cfs(completely fair scheduler)的 cpu 分配時間控制功能,因此在沒有安裝 cfs 的 linux 2.6.23 之前版本的核心中不能使用。因此,本節介紹怎樣通過 cfs 對非實時排程策略程序的 cpu 分配進行控制。

4. cpuset 是 linux 控制組(cgroup)之一,其功能是指定特定程序或執行緒所使用的 cpu組。另外,除 cpu 以外,同樣還能指定記憶體節點的分配。以前的核心具有 cpu affinity 功能,該功能將執行緒分配給特定 cpu。現在的核心中雖然也有 affinity(taskset 命令),但推薦使用 cpuset。

# time make -j 2    //編譯時間

real    4m55.568s

user   2m42.066s

sys     5m4.575s

5. memory cgroup 是 cgroup之一,用來控制程序所使用的記憶體(lru 管理的快取)數量。其用法有很多種,例如,可以用來避免因一時處理較大檔案或大量檔案,而導致無用的頁面快取增大,記憶體資源緊張的情況。另外,還可以在多使用者環境中限制各使用者可以使用的記憶體量。

6. linux 中的 out of memory(oom) killer 功能作為確保記憶體的最終手段,可以在耗盡系統記憶體或交換區後,向程序傳送訊號,強制終止該程序。這個功能即使在無法釋放記憶體的情況下,也能夠重複進行確保記憶體的處理過程,防止系統停滯。還可以找出過度消耗記憶體的程序。本節將介紹 2.6 核心的 oom killer。

7.我太坑了,看不懂啊!這搞毛,不管了,先記錄,再消化!

linux 資源管理

一 系統資源 網路資源 儲存資源,計算資源 二 系統資源管理名命令 1.檢視目錄下的檔案使用情況 du sh 目錄 檔案 注 du sh檢視的是目錄 檔案占用block塊的大小 ll h檢視檔案 目錄的本身大小 2.檢視檔案系統 格式化好的分割槽 的使用情況 df h 注 檢視檔案系統使用i節點的情...

Linux硬體資源管理

1 檢視系統pci裝置 lspci命令可列出所有的pci裝置如主機板 音效卡 顯示卡和網絡卡,也會把usb介面裝置列出來。root localhost lspci 如果想看到更詳細的pci裝置資訊,可以使用 v引數進行檢視 root localhost lspci v2 檢視cpu資訊 root l...

linux程式與資源管理

程式與資源管理 1 關於man命令 man在查詢指令的用法的時候,到何處去查?其實就是在manpath中去查,而manpath在 etc man.conf中設定 ubuntu在 etc manpath.config中進行設定 當我們執行man的時候,會逐個查詢manpath 2 var log中的檔...