一開始找到這篇《Running Firefox in a cgroup (using systemd)》, 不過他不重要了, 不需要看, 因為要使用 systemd 搭配一堆我看不懂的指令, 都不知道自己在打什麼。
以下介紹的方式是直接操作 cgroup 這個虛擬的檔案系統來設定 cgroup。
mount -t cgroup -o memory memcg /media/cgroup cd /media/cgroup mkdir browser cd browser echo 1536M > memory.limit_in_bytes # 設定這個 group 只能使用 1536M 的記憶體 echo 19654 > tasks # 設定某個終端機 shell 的 pid echo $$ 可以得知目前終端機 shell 的 pid, 把那個值 echo 到 task
從那個終端機 shell 執行的程式都會被限制在 1536M 的記憶體, 我從這個終端機執行 firefox, google-chrome 就會受限在 1536M 的記憶體。
mount -t cgroup -o blkio cgroup /media/block/ cd /media/block mkdir compiler cd compiler echo 250 > blkio.weight # 設定這個 group IO 的 schedule 參數值, 這個值越小, 越不容易被 IO schedule 選到執行 echo 19654 > tasks # 設定某個終端機 shell 的 pid
這樣整個 linux 桌面就不會被這 2 個瀏覽器卡住了, 不過有時候會換成這 2 個瀏覽器卡卡的, 請自行調整這些設定值。
ref:
linux kernel hacks (繁體中文版) chapter 2
沒有留言:
張貼留言
使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。
我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。