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?
已存档?
是复刻?
已锁定?
是镜像?
是私有?