Compact memory before requesting huge pages

Compact memory to make bigger contiguous blocks of memory available
before allocating huge pages.

https://www.kernel.org/doc/Documentation/sysctl/vm.txt
This commit is contained in:
Odin Ugedal 2019-09-12 20:22:30 +02:00
parent 3f33bfd801
commit b1308ed70a
No known key found for this signature in database
GPG Key ID: AFF9C8242CF7A7AF

View File

@ -18,6 +18,7 @@ package e2e_node
import (
"fmt"
"os"
"os/exec"
"strconv"
"strings"
@ -85,6 +86,15 @@ func makePodToVerifyHugePages(baseName string, hugePagesLimit resource.Quantity)
// configureHugePages attempts to allocate 10Mi of 2Mi hugepages for testing purposes
func configureHugePages() error {
// Compact memory to make bigger contiguous blocks of memory available
// before allocating huge pages.
// https://www.kernel.org/doc/Documentation/sysctl/vm.txt
if _, err := os.Stat("/proc/sys/vm/compact_memory"); err == nil {
err := exec.Command("/bin/sh", "-c", "echo 1 > /proc/sys/vm/compact_memory").Run()
if err != nil {
return err
}
}
err := exec.Command("/bin/sh", "-c", "echo 5 > /proc/sys/vm/nr_hugepages").Run()
if err != nil {
return err