Difference between revisions of "User:Unikum/Ulatencyd"

From ArchWiki
Jump to: navigation, search
(Configuration)
Line 48: Line 48:
  
 
Some settings are adjustable in /etc/ulatencyd/ulatencyd.conf and the cgroups that will be used can be changed in /etc/ulatencyd/cgroups.conf
 
Some settings are adjustable in /etc/ulatencyd/ulatencyd.conf and the cgroups that will be used can be changed in /etc/ulatencyd/cgroups.conf
 +
 +
Ulatencyd by default changes the io scheduler for all devices to cfq, to disable this behavior (for if you configure your schedulers yourself), simply edit /etc/ulatencyd/rules/io.lua and comment out the lines:
 +
    if self.first_run == true then
 +
      self:set_scheduler(dev, ulatency.get_config("io", "scheduler") or "cfq")
 +
    end
  
 
== See also ==
 
== See also ==

Revision as of 18:28, 6 July 2012

Ulatency is a daemon that controls how the Linux kernel will spend it's resources on the running processes. It uses dynamic cgroups to give the kernel hints and limitations on processes.

It strongly supports the lua scripting language for writing rules and the scheduler code.

Installation

Kernel options requires:

PROC_EVENTS=y
CONFIG_CGROUPS=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_MEM_RES_CTLR=y
CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED=y
CONFIG_CGROUP_SCHED=y
CONFIG_FAIR_GROUP_SCHED=y
CONFIG_RT_GROUP_SCHED=y
CONFIG_BLK_CGROUP=y
CONFIG_CFQ_GROUP_IOSCHED=y

It is provided both in ArchAudio/testing repository and AUR:

# yaourt -S ulatencyd

To start ulatencyd:

# /etc/rc.d/ulatencyd start

If you want ulatencyd start on boot add ulatencyd in DAEMONS section in /etc/rc.conf.

To verify that it works:

$  ulatency tree
 /sys/fs/cgroup/cpu
 └─┬»cpu«
   ├ 2 kthreadd
   ├─┬»s_ul«
   │ └ 4975 ulatencyd
   ├─┬»sys_bg«
   │ └ 1928 cron
   ├─┬»sys_idle«
   │ └ 3036 preload
   ...

Configuration

Some settings are adjustable in /etc/ulatencyd/ulatencyd.conf and the cgroups that will be used can be changed in /etc/ulatencyd/cgroups.conf

Ulatencyd by default changes the io scheduler for all devices to cfq, to disable this behavior (for if you configure your schedulers yourself), simply edit /etc/ulatencyd/rules/io.lua and comment out the lines:

   if self.first_run == true then
     self:set_scheduler(dev, ulatency.get_config("io", "scheduler") or "cfq")
   end

See also