Skip to content

Commit f864abe

Browse files
committed
Disable Linux THP on Debian distros
1 parent 6309afc commit f864abe

File tree

4 files changed

+25
-0
lines changed

4 files changed

+25
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ mongodb_package: mongodb-org
1414

1515
mongodb_force_wait_for_port: false # When not forced, the role will wait for mongod port to become available only with systemd
1616
mongodb_pymongo_from_pip: false # Install latest PyMongo via PIP or package manager
17+
mongodb_disable_thp: true
1718

1819
mongodb_user: mongodb
1920
mongodb_daemon_name: "{{ 'mongod' if ('mongodb-org' in mongodb_package) else 'mongodb' }}"

defaults/main.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
mongodb_package: mongodb-org
44
mongodb_force_wait_for_port: false
55
mongodb_pymongo_from_pip: false # Install latest PyMongo via PIP or package manager
6+
mongodb_disable_thp: true
67

78
mongodb_user: mongodb
89
mongodb_daemon_name: "{{ 'mongod' if ('mongodb-org' in mongodb_package) else 'mongodb' }}"

files/disable_thp.sh

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/usr/bin/env bash
2+
3+
if test -f /sys/kernel/mm/transparent_hugepage/khugepaged/defrag; then
4+
echo 0 > /sys/kernel/mm/transparent_hugepage/khugepaged/defrag
5+
fi
6+
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
7+
echo never > /sys/kernel/mm/transparent_hugepage/defrag
8+
fi
9+
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
10+
echo never > /sys/kernel/mm/transparent_hugepage/enabled
11+
fi

tasks/configure.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,18 @@
5050
template: src=mongod.conf.j2 dest=/etc/mongod.conf backup=yes owner=root group=root mode=0644
5151
register: config_result
5252

53+
- name: Install disable_thp script
54+
copy: src=disable_thp.sh dest=/usr/local/bin/disable_thp.sh mode='u=rwx,g=rx,o=rx'
55+
when: ansible_os_family == 'Debian' and mongodb_disable_thp
56+
57+
- name: Disable Linux transparent hugepages now
58+
command: /usr/local/bin/disable_thp.sh
59+
when: ansible_os_family == 'Debian' and mongodb_disable_thp
60+
61+
- name: Disable Linux transparent hugepages on boot
62+
lineinfile: dest=/etc/rc.local regexp='/usr/local/bin/disable_thp.sh' line='if test -f '/usr/local/bin/disable_thp.sh'; /usr/local/bin/disable_thp.sh; fi'
63+
when: ansible_os_family == 'Debian' and mongodb_disable_thp
64+
5365
- name: mongodb restart
5466
service: name={{ mongodb_daemon_name }} state=restarted
5567
when: config_result|changed

0 commit comments

Comments
 (0)