golang实现输出服务器使用情况
时间: 2024-05-15 18:16:28 浏览: 98
优雅地重新加载golang http服务器,零停机时间,与systemd,supervisor兼容-Golang开发
你可以使用golang的os包和runtime包来获取服务器的使用情况,例如:
```go
package main
import (
"fmt"
"os"
"runtime"
)
func main() {
// 获取操作系统类型
fmt.Println("操作系统类型:", runtime.GOOS)
// 获取CPU核心数
fmt.Println("CPU核心数:", runtime.NumCPU())
// 获取内存使用情况
var mem runtime.MemStats
runtime.ReadMemStats(&mem)
fmt.Printf("总内存:%v bytes,已分配内存:%v bytes,内存占用率:%f%%\n", mem.TotalAlloc, mem.Alloc, float64(mem.Alloc)/float64(mem.TotalAlloc)*100)
// 获取磁盘使用情况
fs := syscall.Statfs_t{}
err := syscall.Statfs("/", &fs)
if err != nil {
fmt.Println("获取磁盘使用情况失败:", err)
} else {
total := fs.Blocks * uint64(fs.Bsize)
free := fs.Bfree * uint64(fs.Bsize)
used := total - free
fmt.Printf("总磁盘空间:%v bytes,已用磁盘空间:%v bytes,可用磁盘空间:%v bytes\n", total, used, free)
}
}
```
上述代码可以输出操作系统类型、CPU核心数、内存使用情况和磁盘使用情况。注意,获取磁盘使用情况需要使用syscall包中的Statfs函数。
阅读全文