fix: host report ovs kmod version and ksm status (#21328)

Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
This commit is contained in:
Jian Qiu
2024-09-28 20:26:19 +08:00
committed by GitHub
parent c34178acfa
commit fadf3944a6
3 changed files with 30 additions and 1 deletions
+7 -1
View File
@@ -731,10 +731,12 @@ func (h *SHostInfo) EnableKsm(sleepSec int) {
sysutils.SetSysConfig("/sys/kernel/mm/ksm/run", "1")
sysutils.SetSysConfig("/sys/kernel/mm/ksm/sleep_millisecs",
fmt.Sprintf("%d", sleepSec*1000))
h.sysinfo.EnableKsm = true
}
func (h *SHostInfo) DisableKsm() {
sysutils.SetSysConfig("/sys/kernel/mm/ksm/run", "0")
h.sysinfo.EnableKsm = false
}
func (h *SHostInfo) PreventArpFlux() {
@@ -1088,8 +1090,12 @@ func (h *SHostInfo) detectOvsKOVersion() error {
lines := strings.Split(string(output), "\n")
for i := 0; i < len(lines); i++ {
line := lines[i]
if strings.HasPrefix(line, "version:") || strings.HasPrefix(line, "vermagic") {
if strings.HasPrefix(line, "version:") || strings.HasPrefix(line, "vermagic:") {
log.Infof("kernel module openvswitch %s", line)
parts := strings.Split(line, ":")
if len(parts) > 1 {
h.sysinfo.OvsKmodVersion = strings.TrimSpace(parts[1])
}
return nil
}
}
+2
View File
@@ -325,6 +325,7 @@ type SSysInfo struct {
KernelVersion string `json:"kernel_version"`
QemuVersion string `json:"qemu_version"`
OvsVersion string `json:"ovs_version"`
OvsKmodVersion string `json:"ovs_kmod_version"`
KvmModule string `json:"kvm_module"`
CpuModelName string `json:"cpu_model_name"`
CpuMicrocode string `json:"cpu_microcode"`
@@ -335,6 +336,7 @@ type SSysInfo struct {
HugepageSizeKb int `json:"hugepage_size_kb"`
HugepageNr *int `json:"hugepage_nr"`
NodeHugepages []hostapi.HostNodeHugepageNr `json:"node_hugepages"`
EnableKsm bool `json:"enable_ksm"`
Topology *hostapi.HostTopology `json:"topology"`
CPUInfo *hostapi.HostCPUInfo `json:"cpu_info"`
+21
View File
@@ -16,6 +16,7 @@ package lbagent
import (
"context"
"fmt"
"os"
"os/signal"
"sync"
@@ -30,6 +31,7 @@ import (
"yunion.io/x/onecloud/pkg/util/fileutils2"
"yunion.io/x/onecloud/pkg/util/ovnutils"
"yunion.io/x/onecloud/pkg/util/procutils"
"yunion.io/x/onecloud/pkg/util/sysutils"
)
func StartService() {
@@ -76,6 +78,8 @@ func StartService() {
}
}
tuneSystem()
var haproxyHelper *HaproxyHelper
var apiHelper *ApiHelper
var haStateWatcher *HaStateWatcher
@@ -122,3 +126,20 @@ func StartService() {
wg.Wait()
}
}
func tuneSystem() {
minMemKB := fmt.Sprintf("%d", 128*1024)
kv := map[string]string{
"/proc/sys/vm/swappiness": "0",
"/proc/sys/vm/vfs_cache_pressure": "350",
"/proc/sys/vm/min_free_kbytes": minMemKB,
"/proc/sys/net/ipv4/tcp_mtu_probing": "2",
"/proc/sys/net/ipv4/neigh/default/gc_thresh1": "1024",
"/proc/sys/net/ipv4/neigh/default/gc_thresh2": "4096",
"/proc/sys/net/ipv4/neigh/default/gc_thresh3": "8192",
"/proc/sys/net/netfilter/nf_conntrack_tcp_be_liberal": "1",
}
for k, v := range kv {
sysutils.SetSysConfig(k, v)
}
}