Update readme

This commit is contained in:
Alexey Avramov 2020-05-20 02:24:07 +09:00
parent 3fc0124a5b
commit c15bc93333

View File

@ -35,9 +35,10 @@ Also look at this discussions:
## Solution
Use one of the userspace OOM killers.
- Use of [earlyoom](https://github.com/rfjakob/earlyoom). This is a simple, stable and tiny OOM preventer written in C (the best choice for emedded and old servers). It has a minimum dependencies and can work with oldest kernels.
- Use of [earlyoom](https://github.com/rfjakob/earlyoom). This is a simple, stable and tiny OOM preventer written in C (the best choice for emedded and old servers). It has a minimum dependencies and can work with oldest kernels. It is enabled by default on Fedora 32 Workstation.
- Use of [oomd](https://github.com/facebookincubator/oomd). This is a userspace OOM killer for linux systems written in C++ and developed by Facebook. This is the best choice for use in large data centers. It needs Linux 4.20+.
- Use of [low-memory-monitor](https://gitlab.freedesktop.org/hadess/low-memory-monitor/). There's a [project announcement](http://www.hadess.net/2019/08/low-memory-monitor-new-project.html).
- [psi-monitor](https://github.com/endlessm/eos-boot-helper/tree/master/psi-monitor) is used by default on Endless OS.
- Use of `nohang`: nohang is earlyoom on steroids and has many useful features, see below. Maybe this is a good choice for modern desktops and servers if you need fine-tuning.
Of course, you can also [download more RAM](https://downloadmoreram.com/), tune [virtual memory](https://www.kernel.org/doc/Documentation/sysctl/vm.txt), use [zram](https://www.kernel.org/doc/Documentation/blockdev/zram.txt)/[zswap](https://www.kernel.org/doc/Documentation/vm/zswap.txt) and use [limits](https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html) for cgroups.
@ -67,20 +68,20 @@ Of course, you can also [download more RAM](https://downloadmoreram.com/), tune
## Requirements
For basic usage:
- `Linux` >= 3.14 (since `MemAvailable` appeared in `/proc/meminfo`)
- `Python` >= 3.3
- `Linux` (>= 3.14, since `MemAvailable` appeared in `/proc/meminfo`)
- `Python` (>= 3.3)
To show GUI notifications:
To respond to `PSI` metrics (optional):
- `Linux` (>= 4.20) with `CONFIG_PSI=y`
To show GUI notifications (optional):
- [notification server](https://wiki.archlinux.org/index.php/Desktop_notifications#Notification_servers) (most of desktop environments use their own implementations)
- `libnotify` (Arch Linux, Fedora, openSUSE) or `libnotify-bin` (Debian GNU/Linux, Ubuntu)
- `sudo` if nohang started with UID=0
To use `PSI`:
- `Linux` >= 4.20 with `CONFIG_PSI=y`.
- `sudo` if nohang started with UID=0.
## Memory and CPU usage
- VmRSS is about 1014 MiB instead of the settings, about 10 MiB by default.
- VmRSS is about 1014 MiB instead of the settings, about 1011 MiB by default.
- CPU usage depends on the level of available memory and monitoring intensity.
## Warnings
@ -122,14 +123,14 @@ $ yay -S nohang-git
$ sudo systemctl enable --now nohang-desktop
```
#### To install on Debian and Ubuntu-based systems please make a deb package with latest git snapshot and install it:
#### To install on Debian and Ubuntu-based systems:
Install build dependencies:
It's easy to build a deb package with latest git snapshot. Install build dependencies:
```bash
$ sudo apt install make fakeroot
```
Clone latest git snapshot and run build script to build deb package:
Clone latest git snapshot and run build script to build package:
```bash
$ git clone https://github.com/hakavlad/nohang.git && cd nohang
$ deb/build.sh
@ -152,7 +153,7 @@ $ git clone https://github.com/hakavlad/nohang.git && cd nohang
$ sudo make install
```
To enable and start unit without GUI notifications:
Config files will be located in `/usr/local/etc/nohang/`. To enable and start unit without GUI notifications:
```
$ sudo systemctl enable nohang
$ sudo systemctl start nohang
@ -164,6 +165,11 @@ $ sudo systemctl enable nohang-desktop
$ sudo systemctl start nohang-desktop
```
On systems with OpenRC:
```
$ sudo make install-openrc
```
#### To uninstall:
```bash
$ sudo make uninstall
@ -197,7 +203,7 @@ optional arguments:
## How to configure
The program can be configured by editing the [config file](https://github.com/hakavlad/nohang/blob/master/nohang/nohang.conf.in). The configuration includes the following sections:
The program can be configured by editing the config file. The configuration includes the following sections:
1. Common zram settings
2. Common PSI settings
@ -210,7 +216,7 @@ The program can be configured by editing the [config file](https://github.com/ha
9. Misc settings
10. Verbosity, debug, logging
Just read the description of the parameters and edit the values. Please restart nohang to apply the changes. Default path to the config after installing is `/etc/nohang/nohang.conf`.
Just read the description of the parameters and edit the values. Please restart nohang to apply the changes.
## How to test nohang
@ -460,7 +466,7 @@ Kthreads, zombies and Pid 1 will not be displayed.
### psi-top
It needs `Linux` >= 4.20 with `CONFIG_PSI=y`.
It needs `Linux` (>= 4.20) with `CONFIG_PSI=y`.
<details>
<summary>Output example</summary>