mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-08-30 17:13:08 +08:00
fix: host report ovs kmod version and ksm status (#21328)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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"`
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user