Jstorm 調度硬件資源cgroups

Cgroups

cgroups是control groups的縮寫,是Linux內核提供的一種可以限制, 記錄, 隔離進程組(process groups)所使用的物理資源(如:cpu,memory,IO 等等)的機制。

Jstorm 使用 Cgroups

在Jstorm中,我們使用cgroup進行cpu硬件資源的管理。使用前,需要做如下檢查和配置。

  1. 檢查/etc/passwd 文件中當前用戶的uid和gid, 假設當前用戶是admin, 則看/etc/passwd文件中admin的uid和gid是多少

  2. cgroup功能在當前系統的內核版本是否支持

  3. 檢查/etc/cgconfig.conf是否存在。如果不存在, 請“yum install libcgroup”,如果存在,設置cpu子系統的掛載目錄位置, 以及修改該配置文件中相應的uid/gid爲啓動jstorm用戶的uid/gid, 本例子中以500爲例, 注意是根據第一步來進行設置的。

     mount {    
          cpu = /cgroup/cpu;
      }
    
    
      group jstorm {
           perm {
                   task {
                          uid = 500;
                          gid = 500;
                   }
                   admin {
                          uid = 500;
                          gid = 500;
                   }
           }
           cpu {
           }
      }
  4. 然後啓動cgroup服務

    service cgconfig restart
    chkconfig --level 23456 cgconfig on
    Note: cgconfig.conf只能在root模式下修改。
    或者直接執行命令

cgconfig.conf配置文件例子。

比如jstorm的啓動用戶爲admin,admin在當前 系統的uid/gid爲500(查看/etc/passwd 可以查看到uid和gid),那麼相對應cpu子系統的jstorm目錄uid/gid也需要設置爲相同的值。 以便jstorm有相應權限可以在這個目錄下爲jstorm的每個需要進行資源隔離的進程創建對應 的目錄和進行相關設置。

```
mkdir /cgroup/cpu
mount  -t cgroup -o cpu none /cgroup/cpu
mkdir /cgroup/cpu/jstorm
chown admin:admin /cgroup/cpu/jstorm
```

在jstorm配置文件中打開cgroup, 配置storm.yaml

   supervisor.enable.cgroup: true
發佈了54 篇原創文章 · 獲贊 33 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章