Disabling transparent_hugepage in a persistent way

Expected / actual behavior

I am running TokuMX (a MongoDB fork) in a container, and it needs the sysctl flag /sys/kernel/mm/transparent_hugepage/enabled set to never to work properly. I can set this option once by going to the moby VM console and doing

echo never > /sys/kernel/mm/transparent_hugepage/enabled

But after rebooting my machine or just restarting the Docker application, it is again switched to “always”:

moby:~# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never

How can I make this setting stick? It seems to be already in /etc/sysctl.conf on the VM, but that seems to have no effect. Is there any persistent startup script that I could edit that does not get overwritten? In the end, one great option would be to have an “Advanced startup options” menu in the Docker app settings where I could just enter my own scripts, but any other workaround would be appreciated. Yes I know I could do this via a persistent container, but no I don’t count that as a viable option more “persistent” than manually going to the VM console.

Information

  • the output of:
    • Moby Menu > Diagnose & Feedback on OSX:

Docker for Mac: version: win-beta-v1.12.0-rc5-beta21-73-g9cd1dc2
OS X: version 10.10.5 (build: 14F1909)
logs: /tmp/B6F7D7E8-D048-49AE-B08A-AA5F6D2EA4C9/20160802-095110.tar.gz
[OK] docker-cli
[OK] app
[OK] moby-syslog
[OK] disk
[OK] virtualization
[OK] system
[OK] menubar
[OK] osxfs
[OK] db
[OK] slirp
[OK] moby-console
[OK] logs
[OK] vmnetd
[OK] env
[OK] moby
[OK] driver.amd64-linux

Steps to reproduce the behavior

  1. switch “transparent_hugepage” to “never”
  2. reboot
  3. despair

This should be fixed in the now released Beta 23.