zswap-cli - Man Page
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 | Deprecated | 3.17.0 to 6.18.0 |
| 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.
--verbose
Enable verbose mode to display additional information for debugging or informational purposes.
-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.
Warning! This feature is deprecated and will be removed in future versions. Please consider switching to configuration files or CLI options.
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=zsmalloc 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=zsmalloc \
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 --envConfiguration 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=zsmalloc 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-2026 EasyCoding Team and contributors.