Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 69.3MB ·虚拟内存 1303.8MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
最近想准确的了解 AI 中文社区 的物理虚拟内存的使用情况,Go 调用 runtime.MemStats 的时候,发现数据出入有点大,干脆使用 Go 调用部署系统 Debian PID 进程状态,来查看应用程序详细的内存数据,以下是调用的代码:
func LinuxPidStatus() (map[string]string, error) {
statusFile := "/proc/" + strconv.Itoa(os.Getpid()) + "/status"
content, err := os.ReadFile(statusFile)
if err != nil {
return nil, err
}
status := make(map[string]string)
for _, line := range strings.Split(string(content), "\n") {
if idx := strings.Index(line, ":"); idx > 0 {
status[line[:idx]] = strings.TrimSpace(line[idx+1:])
}
}
return status, nil
}
返回的部分关键数据:
{
"Pid": "19390",
"RssAnon": "13024 kB",
"RssFile": "21368 kB",//文件RSS内存大小。
"VmData": "54272 kB",//程序数据段的所占虚拟内存大小,存放了初始化了的数据。
"VmExe": "13440 kB",
"VmHWM": "34392 kB",//HWM是High Water Mark的意思,表示rss的峰值。
"VmLib": "8 kB",//进程共享库内存使用量。
"VmPMD": "20 kB",
"VmPTE": "136 kB",
"VmPeak": "1258504 kB",//虚拟内存使用量的峰值
"VmRSS": "34392 kB",//应用程序当前实际占用的物理内存大小。
"VmSize": "1258504 kB",//应用程序当前虚拟内存的实际使用量。
"VmStk": "132 kB"
}