- Notifications
You must be signed in to change notification settings - Fork0
🥵 Pressure Stall Informations (PSI) and starvation notifier
License
NotificationsYou must be signed in to change notification settings
samber/go-psi
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A few readings to getting started with PSI:
- https://docs.kernel.org/accounting/psi.html
- https://facebookmicrosites.github.io/psi/docs/overview
- https://unixism.net/2019/08/linux-pressure-stall-information-psi-by-example/
go get github.com/samber/go-psi
This library is v1 and follows SemVer strictly. No breaking changes will be made to exported APIs before v2.0.0.
Requires Linux kernel >= 4.20.
GoDoc:https://pkg.go.dev/github.com/samber/go-psi
import"github.com/samber/go-psi"// Get PSI for a single resource: psi.Memory or psi.CPU or psi.IO.stats,err:=psi.PSIStatsForResource(psi.Memory)// Get all PSI stats.all,err:=psi.AllPSIStats()
import"github.com/samber/go-psi"onChange,done,err:=psi.Notify(psi.Memory)for {last,_:=<-onChangefmt.Printf("\nMemory:\n%s\n",last)}// when you're done, just stop the notifierdone<-struct{}{}
import"github.com/samber/go-psi"// Alert starts when CPU 10s average go further 90% and stops when CPU goes below 70%.onAlert,done,err:=psi.NotifyStarvation(psi.CPU,psi.Avg10,70,90)for {alert,_:=<-onAlertfmt.Printf("\nALERT %t\nCPU: %f%%\n",alert.Starved,alert.Current)}// when you're done, just stop the notifierdone<-struct{}{}
- Ping me on Twitter@samuelberthe (DMs, mentions, whatever :))
- Fork theproject
- Fixopen issues or request new features
Don't hesitate ;)
# Install some dev dependenciesmake tools# Run testsmaketest# ormake watch-test
Give a ⭐️ if this project helped you!
Copyright © 2023Samuel Berthe.
This project isMIT licensed.
About
🥵 Pressure Stall Informations (PSI) and starvation notifier