open-vault/physical/raft/bolt_linux.go
Hamid Ghaf 27bb03bbc0
adding copyright header (#19555)
* adding copyright header

* fix fmt and a test
2023-03-15 09:00:52 -07:00

40 lines
666 B
Go

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
package raft
import (
"context"
"os"
"github.com/shirou/gopsutil/v3/mem"
"golang.org/x/sys/unix"
)
func init() {
getMmapFlags = getMmapFlagsLinux
}
func getMmapFlagsLinux(dbPath string) int {
if os.Getenv("VAULT_RAFT_DISABLE_MAP_POPULATE") != "" {
return 0
}
stat, err := os.Stat(dbPath)
if err != nil {
return 0
}
size := stat.Size()
v, err := mem.VirtualMemoryWithContext(context.Background())
if err != nil {
return 0
}
// We won't worry about swap, since we already tell people not to use it.
if v.Total > uint64(size) {
return unix.MAP_POPULATE
}
return 0
}