diff options
author | Peter Simons <simons@cryp.to> | 2019-09-01 08:49:25 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-01 08:49:25 +0200 |
commit | 0808f5ad1d8377bfb4653b6d502ee97a2bd9335c (patch) | |
tree | a1e3d6f1e7a9c6567288a089af464df2c6d6d78d /nixos | |
parent | f7a856e4c5773e9dbdd2d725a26cd99a0102c7ff (diff) | |
parent | afd448a9fad78fc96a98489d3c49b63ca7b4f454 (diff) | |
download | nixlib-0808f5ad1d8377bfb4653b6d502ee97a2bd9335c.tar nixlib-0808f5ad1d8377bfb4653b6d502ee97a2bd9335c.tar.gz nixlib-0808f5ad1d8377bfb4653b6d502ee97a2bd9335c.tar.bz2 nixlib-0808f5ad1d8377bfb4653b6d502ee97a2bd9335c.tar.lz nixlib-0808f5ad1d8377bfb4653b6d502ee97a2bd9335c.tar.xz nixlib-0808f5ad1d8377bfb4653b6d502ee97a2bd9335c.tar.zst nixlib-0808f5ad1d8377bfb4653b6d502ee97a2bd9335c.zip |
Merge pull request #67768 from peti/t/redis
nixos/redis: disable transparent huge pages (TLP) before starting Redis
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/services/databases/redis.nix | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/nixos/modules/services/databases/redis.nix b/nixos/modules/services/databases/redis.nix index 3f2857100f52..37cc179023ab 100644 --- a/nixos/modules/services/databases/redis.nix +++ b/nixos/modules/services/databases/redis.nix @@ -40,7 +40,12 @@ in enable = mkOption { type = types.bool; default = false; - description = "Whether to enable the Redis server."; + description = '' + Whether to enable the Redis server. Note that the NixOS module for + Redis disables kernel support for Transparent Huge Pages (THP), + because this features causes major performance problems for Redis, + e.g. (https://redis.io/topics/latency). + ''; }; package = mkOption { @@ -224,6 +229,16 @@ in environment.systemPackages = [ cfg.package ]; + systemd.services.disable-transparent-huge-pages = { + enable = config.services.redis.enable; + description = "Disable Transparent Huge Pages (required by Redis)"; + after = [ "sysinit.target" "local-fs.target" ]; + before = [ "redis.service" ]; + wantedBy = [ "redis.service" ]; + script = "echo never >/sys/kernel/mm/transparent_hugepage/enabled"; + serviceConfig.Type = "oneshot"; + }; + systemd.services.redis = { description = "Redis Server"; |