Copyright © 2022-2025 aizws.net · 网站版本: v1.2.6·内部版本: v1.25.2·
            页面加载耗时 0.00 毫秒·物理内存 151.6MB ·虚拟内存 1440.2MB
        
        欢迎来到 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"
}