前兩天我們介紹mesos的資源保留機制可以分為靜態和動態的方法這兩種,它們主要都是直接的去設定slave的資源保留。Mesos提供另外一種設定方式就是可以透過Restful的方式直接設定整體的role需要多少的資源,而不是在slave上分別設定,這個資源設定最主要是可以保證這個role最少能拿到多少的資源。
如以下的json設定:
{
"role": "role1",
"guarantee": [
{
"name": "cpus",
"type": "SCALAR",
"scalar": { "value": 12 }
},
{
"name": "mem",
"type": "SCALAR",
"scalar": { "value": 6144 }
}
]
}
使用curl的方式把設定傳到restful server的指令如下:
curl -d @quota.json -X POST http://您的mesos master IP位址:5050/quota
可以使用下列網址確認執行結果:
http://您的mesos master IP位址:5050/master/quota
保證role1最小有cpus core為12個,以及保證最小的記憶體使用量為6144MB,它們的使用的資源量有可能會超過這些的設定值。
有一個情境使用quota的最小保證資源使用量會是例外:
有一個role的framework已經先把資源都占用拿去執行了,而造成另外一個有設定quota的role拿不到最小保證資源,它會等待前一個role執行的framework執行完並釋放完資源才會進去執行,它無法使用搶占資源的方式去執行。
這幾天已經對資源管理方面的設定有一點了解,接下來的幾天會介紹在Mesos執行上執行應用程式的部份,如:Spark、CI Server…等等,之後還會在介紹除了marathon之外的其它mesos framework。
參考資料
Mesos Quota:http://mesos.apache.org/documentation/latest/quota/