使用CGROUP限制mongd的disk io

2021-06-21 15:17:56 字數 674 閱讀 9060

使用cgroup做磁碟io的資源隔離,用到blkio子系統

先測試blkio限制dd的情況,很重要的一點是只能限制direct io, dd if=/dev/zero of=/mongodb/dd1 bs=4k count=10240 oflag=direct

在測試mongod的時候,直接限制mongod的程序不起作用,猜測可能是mongod是先往記憶體裡寫,不是direct io,後來直接限制啟動mongod所在的shell 程序,成功

mkdir /cgroup/blkio

mount -t cgroup -o blkio mongoblk /cgroup/blkio

mkdir /cgroup/blkio/groupa

echo $$ > /cgroup/blkio/groupa/tasks

echo "104:16 2097152" > /cgroup/blkio/groupa/blkio.throttle.write_bps_device   (2mb/s)

mongod的資料插入基本1000每秒左右

echo "104:16 4194304" > /cgroup/blkio/groupa/blkio.throttle.write_bps_device   (4mb/s)

mongod的資料插入基本2000每秒左右

正常情況下3000-4000每秒左右

cgroup使用 memory資源限制

同樣,cgroup也可以對memory資源進行限制。下面以乙個例子來驗證cgroup對記憶體限制的使用。1.編寫程式,迴圈分配600m記憶體。include include include define chunk size 1024 1024 100 intmain memset p,0 chun...

使用cgroup限制磁碟io讀寫速率

在mysql innobackupex全備期間,磁碟io基本被打滿,設定過 throttle效果不明顯,throttle this option specifies a number of i o operations pairs of read write per second.it accept...

使用cgroup限制某個程式對記憶體的使用

線上的mongodb是複製集模式的。為了便於監控mongodb的慢查詢等狀態,在3臺機器上都部署了packetbeat,通過抓取27017埠的流量傳送到es集群。但是第二天發現zabbix告警,顯示某一台機器a 從節點 上的mongod程序宕了。日誌顯示是oom導致的。再一想到,我們每天的mongo...