Skip to content

Commit

Permalink
max virtual memory areas (docker-library/elasticsearch#111)
Browse files Browse the repository at this point in the history
  • Loading branch information
ndegory committed Jan 2, 2017
1 parent 15ce96b commit 08d3437
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 0 deletions.
44 changes: 44 additions & 0 deletions cmd/amp/platform_infrastructure.go
Expand Up @@ -4,6 +4,12 @@ import (
"github.com/appcelerator/amp/config"
"github.com/docker/docker/api/types/mount"
"github.com/docker/docker/api/types/swarm"

"bytes"
"os"
"os/exec"
"strconv"
"strings"
)

const (
Expand Down Expand Up @@ -675,3 +681,41 @@ func getAMPInfrastructureStack(m *ampManager) *ampStack {
//return stack
return &stack
}

// system prerequisites
func systemPrerequisites(m *ampManager) (err error) {
sysctl := false
// checks if GOOS is set
goos := os.Getenv("GOOS")
if goos == "linux" {
sysctl = true
} else if goos == "" {
// check if sysctl exists on the system
if _, err := os.Stat("/etc/sysctl.conf"); err == nil {
sysctl = true
}
}
if sysctl {
var out bytes.Buffer
var stderr bytes.Buffer
mmcmin := 262144
cmd := exec.Command("sysctl", "-n", "vm.max_map_count")
cmd.Stdout = &out
cmd.Stderr = &stderr
err = cmd.Run()
mmc, err := strconv.Atoi(strings.TrimRight(out.String(), "\n"))
if err != nil {
return err
}
if mmc < mmcmin {
if m.verbose {
m.printf(colRegular, "setting max virtual memory areas\n")
}
cmd = exec.Command("sysctl", "-w", "vm.max_map_count=262144")
err = cmd.Run()
} else if m.verbose {
m.printf(colRegular, "max virtual memory areas is already at a safe value\n")
}
}
return
}
4 changes: 4 additions & 0 deletions cmd/amp/platform_start.go
Expand Up @@ -57,6 +57,10 @@ func startAMP(cmd *cobra.Command, args []string) error {
manager.printf(colWarn, "Mode force: start anyway\n")
}
}
if err := systemPrerequisites(manager); err != nil {
manager.printf(colError, "Prerequisite error: %v\n", err)
os.Exit(1)
}
if err := manager.start(stack); err != nil {
manager.printf(colError, "Start error: %v\n", err)
if err := manager.stop(stack); err != nil {
Expand Down

0 comments on commit 08d3437

Please sign in to comment.