天天看點

為什麼cgroup blkio不能限制分區

在使用cgroup blkio子系統限制塊裝置的iops時,有沒有遇到過這樣的錯誤?

當限制的塊裝置不是裝置本身時(而是分區),會報錯。

那麼是什麼原因造成的呢?

例子

系統中有一個sda的盤,這個盤分了5個區。

對整盤進行iops限制,正常

對單個分區進行iops限制,失敗

檢視了cgroup的代碼,發現了問題在blkio_policy_parse_and_set這裡,如果發現不是塊裝置本身,而是分區,則報錯。

kernel-2.6.32 / block / blk-cgroup.c

get_gendisk的幫助手冊如下

man get_gendisk

知道原因之後就好了解了,還好cgroup blkio子系統支援device map裝置,是以如果你要對單個分區進行iops的限制,可以用lvm做一層,就可以限制了。

例如

繼續閱讀