All Projects → Nefelim4ag → Ananicy

Nefelim4ag / Ananicy

Licence: gpl-3.0
Ananicy - is Another auto nice daemon, with community rules support (Use pull request please)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Ananicy

Xsuspender
👀 💻 💤 🔋 Save battery by auto-suspending unfocused X11 applications.
Stars: ✭ 53 (-83.33%)
Mutual labels:  daemon, cpu
Auto Cpufreq
Automatic CPU speed & power optimizer for Linux
Stars: ✭ 843 (+165.09%)
Mutual labels:  daemon, cpu
neutron
Neutron - Staking + Masternode Cryptocurrency
Stars: ✭ 31 (-90.25%)
Mutual labels:  daemon
Riscv
RISC-V CPU Core (RV32IM)
Stars: ✭ 272 (-14.47%)
Mutual labels:  cpu
Riscv Rust
RISC-V processor emulator written in Rust+WASM
Stars: ✭ 253 (-20.44%)
Mutual labels:  cpu
ntUPSd
Network UPS Tools upsd Compatible Server for Windows
Stars: ✭ 17 (-94.65%)
Mutual labels:  daemon
Appimaged
appimaged is a daemon that monitors the system and integrates AppImages.
Stars: ✭ 262 (-17.61%)
Mutual labels:  daemon
cmdr
POSIX-compliant command-line UI (CLI) parser and Hierarchical-configuration operations
Stars: ✭ 94 (-70.44%)
Mutual labels:  daemon
Ngircd
Free, portable and lightweight Internet Relay Chat server
Stars: ✭ 292 (-8.18%)
Mutual labels:  daemon
ArchLinuxTutorial
✨Arch Linux安装使用教程 每日实时更新! | 包含ArchLinux从安装到日常使用、娱乐、编程、媒体制作的各个方面,让Arch成为你的常用系统吧! | 提供在线网页文档 ✨
Stars: ✭ 513 (+61.32%)
Mutual labels:  arch
Ybtaskscheduler
iOS 任务调度器,为 CPU 和内存减负(用于性能优化)
Stars: ✭ 270 (-15.09%)
Mutual labels:  cpu
CPURasterizer
CPU Based Rasterizer Engine
Stars: ✭ 99 (-68.87%)
Mutual labels:  cpu
core d.js
Offload your heavy lifting to a daemon. Extracted from eslint_d.
Stars: ✭ 21 (-93.4%)
Mutual labels:  daemon
Pine64 Arch
PKGBUILD for running Arch Linux on PinePhone/PineTab.
Stars: ✭ 258 (-18.87%)
Mutual labels:  arch
lucjan-kernels
Dell Inspiron 15-3542 (3542-2538) with Fourth Gen Intel Core i3/i5/i7 optimized.
Stars: ✭ 16 (-94.97%)
Mutual labels:  arch
Bauh
Graphical user interface for managing your Linux applications. Supports AppImage, Arch (repositories/AUR), Flatpak, Snap and native Web applications.
Stars: ✭ 280 (-11.95%)
Mutual labels:  arch
mos6502
MOS 6502 emulator written in Rust
Stars: ✭ 25 (-92.14%)
Mutual labels:  cpu
dotfiles
My arch setup script and dotfiles
Stars: ✭ 37 (-88.36%)
Mutual labels:  arch
Bistoury
Bistoury是去哪儿网的java应用生产问题诊断工具,提供了一站式的问题诊断方案
Stars: ✭ 3,198 (+905.66%)
Mutual labels:  cpu
Robox
The tools needed to robotically create/configure/provision a large number of operating systems, for a variety of hypervisors, using packer.
Stars: ✭ 303 (-4.72%)
Mutual labels:  arch

Ananicy

Description

Ananicy (ANother Auto NICe daemon) — is a shell daemon created to manage processes' IO and CPU priorities, with community-driven set of rules for popular applications (anyone may add his own rule via github's pull request mechanism).

I think it's only for desktop usage.

I just wanted a tool for auto set programs nice in my system, i.e.:

  • Why do I have a lags, while compiling kernel and playing a game?
  • Why does dropbox client eat all my IO?
  • Why does torrent/dc client make my laptop run slower?
  • ...

Use ananicy to fix this problems!

Versions

X.Y.Z where
X - Major version,
Y - Script version - reset on each major update
Z - Rules version - reset on each script update

Read more about semantic versioning here

Installation

To use ananicy you must have systemd installed.

You can install ananicy manually by:

$ git clone https://github.com/Nefelim4ag/Ananicy.git /tmp/ananicy
$ cd /tmp/ananicy
$ sudo make install
$ git clone https://github.com/Nefelim4ag/Ananicy.git
$ ./Ananicy/package.sh debian
$ sudo dpkg -i ./Ananicy/ananicy-*.deb

Enable

$ sudo systemctl enable ananicy
$ sudo systemctl start ananicy

Configuration

Rules files should be placed under /etc/ananicy.d/ directory and have *.rules extension. Inside .rules file every process is described on a separate line, general syntax is described below:

{ "name": "gcc", "type": "Heavy_CPU", "nice": 19, "ioclass": "best-effort", "ionice": 7, "cgroup": "cpu90" }

All fields except 'name' are optional.

'name' used for match processes by exec bin name

~ basename $(sudo realpath /proc/1/exe)
systemd

Currently match by other things, not supported.

You can check what Ananicy see, by:

ananicy dump proc

Ananicy load all rules in ram while starting, so to apply rules, you must restart service.

Available ionice values:

$ man ionice

Simple rules for writing rules

CFQ IO Scheduller also use 'nice' for internal scheduling, so it's mean processes with same IO class and IO priority, but with different nicceness will take advantages of 'nice' also for IO.

  1. Try don't chage 'nice' of system wide process like initrd.
  2. Please try use full process name (or name with ^$ symbols like NAME=^full_name$)
  3. When writing rule - try use only 'nice', it must be enough in most cases.
  4. Don't try set to high priority! Niceness can fix some performance problems, but can't give you more. Example: pulseaudio uses 'nice' -11 by default, if you set other cpu hungry task, with 'nice' {-20..-12} you can catch a sound glitches.
  5. For CPU hungry backround task like compiling, just use NICE=19.

About IO priority:

  1. It's usefull use '{"ioclass": "idle"}' for IO hungry background tasks like: file indexers, Cloud Clients, Backups and etc.
  2. It's not cool set realtime to all tasks. The RT scheduling class is given first access to the disk, regardless of what else is going on in the system. Thus the RT class needs to be used with some care, as it can starve other processes. So try use ioclass first.

Debugging

Get ananicy output with journalctl:

$ journalctl -efu ananicy.service

Missing schedtool

If you see this error in the output

Jan 24 09:44:18 tony-dev ananicy[13783]: ERRO: Missing schedtool! Abort!

Fix it in Ubuntu with

sudo apt install schedtool

Submitting new rules

Please use pull request, thanks

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].