亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

OOM機制以及模擬方法

2023-06-21 03:02:20
207
0

一、OOM機制

OOM機制是Linux操作系統中的一個重要特性,它可以在系統內存不足時自動殺死一些進程來釋放內存。這個機制的出現是為了解決系統內存管理的問題,避免資源的浪費和系統的宕機。Linux的OOM機制基于進程的OOM得分來確定哪個進程將被殺死,得分越高的進程越容易被殺死。

二、相關系統參數

在Linux系統中,有一些相關的系統參數可以用來控制OOM機制的行為,包括:

1. vm.overcommit_memory:該參數控制內存分配時系統的行為。

   查看方式:cat /proc/sys/vm/overcommit_memory

   vm.overcommit_memory=0時,表示內存分配時不檢查系統內存是否足夠,而是依靠后續的OOM killer來殺死進程。

   vm.overcommit_memory=1時,永遠允許進程overcommit,不會觸發OOM killer。

   vm.overcommit_memory=2時,永遠禁止overcommit,不會觸發OOM killer。

2. vm.panic_on_oom:該參數控制系統在內存不足時是否崩潰。

   查看方式:cat /proc/sys/vm/panic_on_oom

   vm.panic_on_oom=0:內存不足時,啟動 OOM killer。
   vm.panic_on_oom=1:內存不足時,有可能會觸發 kernel panic,也有可能啟動 OOM killer。
   vm.panic_on_oom=2:內存不足時,表示強制觸發 kernel panic,導致系統重啟。

3. vm.oom_kill_allocating_task:該參數控制在內存不足時是否殺死正在分配內存的進程。

   查看方式:cat /proc/sys/vm/oom_kill_allocating_task

   vm.oom_kill_allocating_task=0時,表示系統會殺死使用得分最高的進程。

   vm.oom_kill_allocating_task值為非0時,表示系統會殺死正在分配內存的進

   vm.oom_kill_allocating_task:該參數控制在內存不足時是否殺死正在分配內存的進程。

4. 控制進程打分參數

   查看路徑: /proc/進程PID/

   oom_score:內核對進程的打分,包含系統打分和用戶打分。

   oom_score_adj:用戶打分。通過調整 oom_score_adj 的值來決定最終 oom_score 的值,oom_score_adj 的取值范圍是 -1000~1000,為0時表示用戶不調整 oom_score。

   oom_adj:舊的接口參數,其功能類似oom_score_adj,為了兼容,目前仍然保留這個參數,當操作這個參數的時候,kernel實際上是會換算成oom_score_adj

三、使用ChaosBlade模擬OOM的表現

ChaosBlade是一種開源的混沌工程實驗工具,可以用來模擬各種系統問題,包括OOM。使用ChaosBlade模擬OOM的方法如下:

1. 安裝ChaosBlade。

   從github下載最新版本并解壓://github.com/chaosblade-io/chaosblade/releases

   進入主路徑:cd chaosblade/

   確認是否安裝成功:./blade v

2. 修改OOM相關系統參數

3. 執行以下命令來模擬OOM:

   ./blade create mem load --mem-percent 90

4. 查看系統日志是否出現了OOM

   dmesg -T

0條評論
作者已關閉評論
xinjiefeng
8文章數
0粉絲數
xinjiefeng
8 文章 | 0 粉絲
原創

OOM機制以及模擬方法

2023-06-21 03:02:20
207
0

一、OOM機制

OOM機制是Linux操作系統中的一個重要特性,它可以在系統內存不足時自動殺死一些進程來釋放內存。這個機制的出現是為了解決系統內存管理的問題,避免資源的浪費和系統的宕機。Linux的OOM機制基于進程的OOM得分來確定哪個進程將被殺死,得分越高的進程越容易被殺死。

二、相關系統參數

在Linux系統中,有一些相關的系統參數可以用來控制OOM機制的行為,包括:

1. vm.overcommit_memory:該參數控制內存分配時系統的行為。

   查看方式:cat /proc/sys/vm/overcommit_memory

   vm.overcommit_memory=0時,表示內存分配時不檢查系統內存是否足夠,而是依靠后續的OOM killer來殺死進程。

   vm.overcommit_memory=1時,永遠允許進程overcommit,不會觸發OOM killer。

   vm.overcommit_memory=2時,永遠禁止overcommit,不會觸發OOM killer。

2. vm.panic_on_oom:該參數控制系統在內存不足時是否崩潰。

   查看方式:cat /proc/sys/vm/panic_on_oom

   vm.panic_on_oom=0:內存不足時,啟動 OOM killer。
   vm.panic_on_oom=1:內存不足時,有可能會觸發 kernel panic,也有可能啟動 OOM killer。
   vm.panic_on_oom=2:內存不足時,表示強制觸發 kernel panic,導致系統重啟。

3. vm.oom_kill_allocating_task:該參數控制在內存不足時是否殺死正在分配內存的進程。

   查看方式:cat /proc/sys/vm/oom_kill_allocating_task

   vm.oom_kill_allocating_task=0時,表示系統會殺死使用得分最高的進程。

   vm.oom_kill_allocating_task值為非0時,表示系統會殺死正在分配內存的進

   vm.oom_kill_allocating_task:該參數控制在內存不足時是否殺死正在分配內存的進程。

4. 控制進程打分參數

   查看路徑: /proc/進程PID/

   oom_score:內核對進程的打分,包含系統打分和用戶打分。

   oom_score_adj:用戶打分。通過調整 oom_score_adj 的值來決定最終 oom_score 的值,oom_score_adj 的取值范圍是 -1000~1000,為0時表示用戶不調整 oom_score。

   oom_adj:舊的接口參數,其功能類似oom_score_adj,為了兼容,目前仍然保留這個參數,當操作這個參數的時候,kernel實際上是會換算成oom_score_adj

三、使用ChaosBlade模擬OOM的表現

ChaosBlade是一種開源的混沌工程實驗工具,可以用來模擬各種系統問題,包括OOM。使用ChaosBlade模擬OOM的方法如下:

1. 安裝ChaosBlade。

   從github下載最新版本并解壓://github.com/chaosblade-io/chaosblade/releases

   進入主路徑:cd chaosblade/

   確認是否安裝成功:./blade v

2. 修改OOM相關系統參數

3. 執行以下命令來模擬OOM:

   ./blade create mem load --mem-percent 90

4. 查看系統日志是否出現了OOM

   dmesg -T

文章來自個人專欄
文章 | 訂閱
0條評論
作者已關閉評論
作者已關閉評論
0
0