From bcc48b329e0b3a7f15507d50d1b9b91fa48aa212 Mon Sep 17 00:00:00 2001 From: Nicolas Boutet Date: Mon, 3 Jun 2019 18:57:48 +0200 Subject: [PATCH] Improve disable THP systemd unit file --- ...disable-transparent-hugepages.amazon.service} | 5 ----- .../disable-transparent-hugepages.debian.service | 16 ++++++++++++++++ .../disable-transparent-hugepages.redhat.service | 16 ++++++++++++++++ tasks/disable_transparent_hugepages.yml | 5 ++++- 4 files changed, 36 insertions(+), 6 deletions(-) rename files/{disable-transparent-hugepages.service => disable-transparent-hugepages.amazon.service} (61%) create mode 100644 files/disable-transparent-hugepages.debian.service create mode 100644 files/disable-transparent-hugepages.redhat.service diff --git a/files/disable-transparent-hugepages.service b/files/disable-transparent-hugepages.amazon.service similarity index 61% rename from files/disable-transparent-hugepages.service rename to files/disable-transparent-hugepages.amazon.service index 8e0c3b7..4a532ba 100644 --- a/files/disable-transparent-hugepages.service +++ b/files/disable-transparent-hugepages.amazon.service @@ -6,14 +6,9 @@ Before=mongodb.service [Service] Type=oneshot -ExecStart=-/bin/bash -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' -ExecStart=-/bin/bash -c 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' ExecStart=-/bin/bash -c 'echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled' ExecStart=-/bin/bash -c 'echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag' -ExecStart=-/bin/bash -c 'echo 0 > /sys/kernel/mm/transparent_hugepage/khugepaged/defrag' ExecStart=-/bin/bash -c 'echo 0 > /sys/kernel/mm/redhat_transparent_hugepage/khugepaged/defrag' -ExecStart=-/bin/bash -c 'echo no > /sys/kernel/mm/transparent_hugepage/khugepaged/defrag' -ExecStart=-/bin/bash -c 'echo no > /sys/kernel/mm/redhat_transparent_hugepage/khugepaged/defrag' [Install] #WARN: check service name on your system diff --git a/files/disable-transparent-hugepages.debian.service b/files/disable-transparent-hugepages.debian.service new file mode 100644 index 0000000..ded8fbb --- /dev/null +++ b/files/disable-transparent-hugepages.debian.service @@ -0,0 +1,16 @@ +[Unit] +Description="Disable Transparent Hugepage before MongoDB boots" +#WARN: check service name on your system +# If you are using MongoDB Cloud, service name is "mongodb-mms-automation-agent.service" +Before=mongodb.service + +[Service] +Type=oneshot +ExecStart=-/bin/bash -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' +ExecStart=-/bin/bash -c 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' +ExecStart=-/bin/bash -c 'echo 0 > /sys/kernel/mm/transparent_hugepage/khugepaged/defrag' + +[Install] +#WARN: check service name on your system +# If you are using MongoDB Cloud, service name is "mongodb-mms-automation-agent.service" +RequiredBy=mongodb.service diff --git a/files/disable-transparent-hugepages.redhat.service b/files/disable-transparent-hugepages.redhat.service new file mode 100644 index 0000000..4a532ba --- /dev/null +++ b/files/disable-transparent-hugepages.redhat.service @@ -0,0 +1,16 @@ +[Unit] +Description="Disable Transparent Hugepage before MongoDB boots" +#WARN: check service name on your system +# If you are using MongoDB Cloud, service name is "mongodb-mms-automation-agent.service" +Before=mongodb.service + +[Service] +Type=oneshot +ExecStart=-/bin/bash -c 'echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled' +ExecStart=-/bin/bash -c 'echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag' +ExecStart=-/bin/bash -c 'echo 0 > /sys/kernel/mm/redhat_transparent_hugepage/khugepaged/defrag' + +[Install] +#WARN: check service name on your system +# If you are using MongoDB Cloud, service name is "mongodb-mms-automation-agent.service" +RequiredBy=mongodb.service diff --git a/tasks/disable_transparent_hugepages.yml b/tasks/disable_transparent_hugepages.yml index 37c28b8..5f0ac44 100644 --- a/tasks/disable_transparent_hugepages.yml +++ b/tasks/disable_transparent_hugepages.yml @@ -1,11 +1,14 @@ --- - name: Create disable transparent hugepages systemd service file copy: - src: disable-transparent-hugepages.service + src: "{{ item }}" dest: /etc/systemd/system/disable-transparent-hugepages.service owner: root group: root mode: 0644 + with_first_found: + - "disable-transparent-hugepages.{{ ansible_distribution | lower }}.service" + - "disable-transparent-hugepages.{{ ansible_os_family | lower }}.service" - name: Enable disable-transparent-hugepages.service systemd: