跨平台 Python 库,用于获取进程及 CPU、内存、磁盘、网络和传感器等系统资源信息。
shirou/gopsutil
Go 语言版的 psutil,用于跨平台读取 CPU、内存、磁盘、网络和进程等系统信息。
- Star
- 11,938
- Fork
- 1,691
- 未关闭 Issue
- 219
- 最近提交
- 前天
这是什么?
gopsutil 是一个 Go 语言库,参照 Python 的 psutil 设计,通过统一的 API 获取系统指标和进程信息。它可以读取 CPU 时间与使用率、虚拟内存和交换内存、磁盘分区与用量、网络 I/O 计数、网络连接、主机与开机时间、登录用户,以及进程的内存、CPU、打开文件等详细信息。
该库支持 Linux、FreeBSD、OpenBSD、macOS(Darwin)、Windows 和 Solaris,覆盖多种 CPU 架构,DragonFly BSD 和 Linux RISC-V 为部分支持。实现上不依赖 cgo,而是将相关 C 结构体移植为 Go 结构体,因此可以使用标准工具链直接编译和交叉编译。各平台特有的信息可通过 ExLinux、ExWindows 等 Ex 结构体获取。
项目采用日历版本号(vMAJOR.YY.MM),要求 Go 1.18 及以上版本。另外提供了若干 Linux 专用函数,用于读取 Docker 容器的 CPU 与内存 cgroup 数据以及 netfilter conntrack 计数。/proc、/sys 等系统目录可以通过环境变量或 context 指定其他位置。
核心功能
- 01通过统一的 Go API 获取跨平台的 CPU、内存、磁盘和网络指标
- 02提供进程级信息,如内存、CPU、打开的文件和网络连接
- 03不依赖 cgo,C 结构体已移植为 Go 结构体
- 04通过 ExLinux、ExWindows 等结构体获取平台特有信息
- 05支持自定义 /proc、/sys 等系统路径,便于容器或挂载点场景使用
适用场景
- 用 Go 开发监控代理或指标导出器,上报主机指标
- 编写可在 Linux、macOS 和 Windows 上运行的系统状态命令行工具
- 采集进程级资源占用,用于故障排查或仪表盘展示
- 在 Linux 主机上读取 Docker 容器的 cgroup 资源数据
快速上手
- 1
将库安装到你的 Go 模块中
go get github.com/shirou/gopsutil/v4 - 2
在代码中导入 mem 等包并读取系统内存信息
使用前须知
- 需要 Go 1.18 或更高版本。
- 不同平台的支持程度不一,部分功能在某些操作系统上仅部分可用或存在问题。
标签
常见问题
- gopsutil 是什么?
- Go 语言版的 psutil,用于跨平台读取 CPU、内存、磁盘、网络和进程等系统信息。 gopsutil 是一个 Go 语言库,参照 Python 的 psutil 设计,通过统一的 API 获取系统指标和进程信息。它可以读取 CPU 时间与使用率、虚拟内存和交换内存、磁盘分区与用量、网络 I/O 计数、网络连接、主机与开机时间、登录用户,以及进程的内存、CPU、打开文件等详细信息。
- gopsutil 可以免费使用吗?用的什么许可证?
- gopsutil 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
- gopsutil 还在维护吗?
- 活跃维护中。gopsutil 最近一次提交是在 2026年11月5日。
- gopsutil 适合用来做什么?
- 用 Go 开发监控代理或指标导出器,上报主机指标 编写可在 Linux、macOS 和 Windows 上运行的系统状态命令行工具 采集进程级资源占用,用于故障排查或仪表盘展示 在 Linux 主机上读取 Docker 容器的 cgroup 资源数据
- gopsutil 怎么安装和运行?
- 将库安装到你的 Go 模块中: go get github.com/shirou/gopsutil/v4 在代码中导入 mem 等包并读取系统内存信息
- 在哪里获取 gopsutil?
- 源代码和安装说明在 GitHub 上:https://github.com/shirou/gopsutil
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一款 macOS 菜单栏系统监控工具,实时显示 CPU、GPU、内存、磁盘、网络等数据。
终端界面工具,以图表显示 CPU 温度、频率、功耗和利用率,并内置 CPU 压力测试。
一款高性能、可定制的命令行工具,用于展示系统信息并配以 ASCII 或图片 logo。
htop 是一款交互式终端进程查看器,支持 Linux、BSD 和 macOS,可排序、过滤并直接管理进程。