zswap-cli(1) | General Commands Manual | zswap-cli(1) |
NAME¶
zswap-cli - command-line tool to control the ZSwap kernel module
SYNOPSIS¶
zswap-cli [OPTION...]
DESCRIPTION¶
zswap-cli is a command-line tool to control the ZSwap kernel module.
FEATURES¶
Supported kernel module options:
Name | Value | Status | Kernel version |
enabled | Y (enable) or N (disable) | Active | Any |
same_filled_pages_enabled | Y (enable) or N (disable) | Deprecated | 4.16.0 to 6.10.0 |
max_pool_percent | integer from 1 to 100 | Active | Any |
compressor | from supported by kernel | Active | Any |
zpool | from supported by kernel | Active | Any |
accept_threshold_percent | integer from 1 to 100 | Active | 5.6.0 or higher |
non_same_filled_pages_enabled | Y (enable) or N (disable) | Deprecated | 5.18.0 to 6.10.0 |
exclusive_loads | Y (enable) or N (disable) | Deprecated | 6.5.0 to 6.9.0 |
shrinker_enabled | Y (enable) or N (disable) | Active | 6.8.0 or higher |
Deprecated functionality will be removed in future project versions.
COMMAND-LINE OPTIONS¶
--help¶
Print help message and exit.
--version¶
Print version information and exit.
--config¶
Get options from the configuration file instead of the cmdline.
--env¶
Get options from the environment variables instead of the cmdline.
--stats¶
Get statistics and current settings of the ZSwap kernel module.
Supported values:
- •
- 0 (default) - print everything: kernel module settings, usage summary, and debug information.
- •
- 1 - print kernel module settings.
- •
- 2 - print kernel module usage summary.
- •
- 3 - print kernel module debug information.
-e, --enabled¶
Enable or disable the ZSwap kernel module.
Supported values: Y, N.
-s, --same_filled_pages_enabled¶
Enable or disable memory pages deduplication.
Supported values: Y, N.
-p, --max_pool_percent¶
The maximum percentage of memory that the compressed pool can occupy.
Supported values: integer from 1 to 100.
-c, --compressor¶
The algorithm used to compress memory pages.
Supported values: depends on the kernel build time configuration.
-z, --zpool¶
The kernel’s zpool type.
Supported values: depends on the kernel build time configuration.
-a, --accept_threshold_percent¶
The threshold at which ZSwap would start accepting pages again after it became full.
Supported values: integer from 1 to 100.
-n, --non_same_filled_pages_enabled¶
Enable or disable accepting non same filled memory pages.
Supported values: Y, N.
-x, --exclusive_loads¶
Enable or disable entries invalidation when memory pages are loaded from compressed pool.
Supported values: Y, N.
-r, --shrinker_enabled¶
Enable or disable pool shrinking based on memory pressure.
Supported values: Y, N.
ENVIRONMENT OPTIONS¶
zswap-cli support of getting options from the environment variables.
Supported options¶
- •
- ZSWAP_ENABLED_VALUE - enable or disable the ZSwap kernel module.
- •
- ZSWAP_SAME_FILLED_PAGES_ENABLED_VALUE - enable or disable memory pages deduplication.
- •
- ZSWAP_MAX_POOL_PERCENT_VALUE - the maximum percentage of memory that the compressed pool can occupy.
- •
- ZSWAP_COMPRESSOR_VALUE - the algorithm used to compress memory pages.
- •
- ZSWAP_ZPOOL_VALUE - the kernel’s zpool type.
- •
- ZSWAP_ACCEPT_THRESHOLD_PERCENT_VALUE - the threshold at which ZSwap would start accepting pages again after it became full.
- •
- ZSWAP_NON_SAME_FILLED_PAGES_ENABLED_VALUE - enable or disable accepting non same filled memory pages.
- •
- ZSWAP_EXCLUSIVE_LOADS_VALUE - enable or disable entries invalidation when memory pages are loaded from compressed pool.
- •
- ZSWAP_SHRINKER_ENABLED_VALUE - enable or disable pool shrinking based on memory pressure.
Forwarding options¶
Export the environment variables using the export command:
-
export ZSWAP_ENABLED_VALUE=Y export ZSWAP_SAME_FILLED_PAGES_ENABLED_VALUE=Y export ZSWAP_MAX_POOL_PERCENT_VALUE=60 export ZSWAP_COMPRESSOR_VALUE=lzo export ZSWAP_ZPOOL_VALUE=z3fold export ZSWAP_ACCEPT_THRESHOLD_PERCENT_VALUE=90 export ZSWAP_NON_SAME_FILLED_PAGES_ENABLED_VALUE=Y export ZSWAP_EXCLUSIVE_LOADS_VALUE=Y export ZSWAP_SHRINKER_ENABLED_VALUE=Y
Start the application with the --env command-line argument:
-
sudo zswap-cli --env
Note that most distributions are configured by default not to pass user-defined ENV settings when using sudo. In such cases, you can explicitly specify them all in one command:
-
sudo ZSWAP_ENABLED_VALUE=Y \
ZSWAP_SAME_FILLED_PAGES_ENABLED_VALUE=Y \
ZSWAP_MAX_POOL_PERCENT_VALUE=60 \
ZSWAP_COMPRESSOR_VALUE=lzo \
ZSWAP_ZPOOL_VALUE=z3fold \
ZSWAP_ACCEPT_THRESHOLD_PERCENT_VALUE=90 \
ZSWAP_NON_SAME_FILLED_PAGES_ENABLED_VALUE=Y \
ZSWAP_EXCLUSIVE_LOADS_VALUE=Y \
ZSWAP_SHRINKER_ENABLED_VALUE=Y \
zswap-cli --env
CONFIGURATION FILES¶
zswap-cli support of getting options from the configuration files.
Supported options¶
- •
- enabled - enable or disable the ZSwap kernel module.
- •
- same_filled_pages_enabled - enable or disable memory pages deduplication.
- •
- max_pool_percent - the maximum percentage of memory that the compressed pool can occupy.
- •
- compressor - the algorithm used to compress memory pages.
- •
- zpool - the kernel’s zpool type.
- •
- accept_threshold_percent - the threshold at which ZSwap would start accepting pages again after it became full.
- •
- non_same_filled_pages_enabled - enable or disable accepting non same filled memory pages.
- •
- exclusive_loads - enable or disable entries invalidation when memory pages are loaded from compressed pool.
- •
- shrinker_enabled - enable or disable pool shrinking based on memory pressure.
Forwarding options¶
Create a configuration file:
-
[zswap] enabled=Y same_filled_pages_enabled=Y max_pool_percent=60 compressor=lzo zpool=z3fold accept_threshold_percent=90 non_same_filled_pages_enabled=Y exclusive_loads=Y shrinker_enabled=Y
Start the application with the --config command-line argument:
-
sudo zswap-cli --config /path/to/zswap-cli.conf
SYSTEMD UNIT¶
After installation, the systemd unit zswap-cli.service will be added.
Changing settings¶
All settings are stored in the /etc/zswap-cli/zswap-cli.conf configuration file. It uses standard key-value syntax and can be edited by the user.
Enabling unit¶
Enable the systemd unit to allow it to run at system startup:
-
sudo systemctl enable --now zswap-cli.service
Disabling unit¶
Disable the systemd unit and stop it from running at system startup:
-
sudo systemctl disable zswap-cli.service
Running unit¶
It is also possible to start the systemd unit without adding it to startup.
Start the unit and enable ZSwap:
-
sudo systemctl start zswap-cli.service
Stop the unit and disable ZSwap:
-
sudo systemctl stop zswap-cli.service
EXIT STATUS¶
0: Successful exit.
1: An error occurred.
AUTHORS¶
Copyright (c) 2020-2024 EasyCoding Team and contributors.