rcon

rcon is a lightweight resource virtualization tool for linux processes. This is one-binary.

  • 所有者: matsumotory/rcon
  • 平台:
  • 許可證:
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

rcon Build Status

rcon is a lightweight resource virtualization tool for linux processes. rcon is one-binary.

demo

build

build on vagrant

vagrant up
vagrant ssh
cd rcon/
rake
cp -p mruby/bin/rcon /path/to/bin-dir/.

build packages and release

Create release binary considering glibc versions using Docker.

Require: golang docker

I build and release rcon on macOS.

rake package
ls -l pkg/
GITHUB_TOKEN=`cat ~/.github_token` rake release

usage

 ./rcon --help
Usage: rcon [options] --user username --command "yes >> /dev/null"
    --cpu VAL
      default: 30 (%)
    --memory VAL
      default: 512000000 (Byte)
    --read VAL
      default: 10485760 (Byte/sec)
    --write VAL
      default: 10485760 (Byte/sec)
    --group VAL
      default: rcon
    --dev VAL
      default: 8:0
    --pids VAL
      default: nothing
    --version

cpu example

no limit

  • command
yes >> /dev/null
  • cpu usage
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
27577 matsumot  20   0 98.5m  608  520 R 100.0  0.0   0:01.95 yes 

limitting cpu 10%

  • command
sudo ./rcon --user matsumotory --command "yes >> /dev/null" --cpu 10
  • cpu usage limitted 10% by rcon
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
23941 matsumot  20   0 98.5m  604  520 R  9.6  0.0   0:00.63 yes

limitting already running process to cpu 30%

  • command
yes >> /dev/null &
yes >> /dev/null &
sudo ./rcon --pids "`pgrep yes`"
  • cpu usage
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND 
22531 vagrant   20   0 98.5m  612  524 R 15.6  0.0   0:16.16 yes
22532 vagrant   20   0 98.5m  612  524 R 14.3  0.0   0:15.47 yes

Notice: pids optsion don't delete groups after running process was finished

io example

no limit

  • command
dd if=/dev/zero of=tempfile bs=1M count=1000 oflag=direct
  • io usage
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
27569 be/4 matsumot    0.00 B/s   22.09 M/s  0.00 % 95.93 % dd if=/dev/zero of=tempfile bs=1M count=1000 oflag=direct

limitting write io 1MByte/sec

  • command
sudo ./rcon --user matsumotory --command "dd if=/dev/zero of=tempfile bs=1M count=1000 oflag=direct" --write 1024000
  • io usage limitted 1MByte/sec by rcon
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND
24676 be/4 matsumot    0.00 B/s  995.77 K/s  0.00 % 99.99 % dd if=/dev/zero of=tempfile bs=1M count=1000 oflag=direct  
  • find io dev id (--dev)
$ ls -l /dev/xvda, awk '{print $5 $6}', sed 's/,/:/'
202:0

for --dev option. default 8:0.

主要指標

概覽
名稱與所有者matsumotory/rcon
主編程語言Ruby
編程語言Ruby (語言數: 3)
平台
許可證
所有者活动
創建於2015-12-01 10:08:41
推送於2021-09-10 06:25:41
最后一次提交2021-09-10 15:25:41
發布數5
最新版本名稱v0.0.4 (發布於 )
第一版名稱v0.0.1 (發布於 )
用户参与
星數378
關注者數18
派生數19
提交數73
已啟用問題?
問題數2
打開的問題數1
拉請求數6
打開的拉請求數0
關閉的拉請求數0
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?