gc_unix.go 362 B

123456789101112131415161718
  1. //go:build !windows
  2. // +build !windows
  3. package worker
  4. import (
  5. "syscall"
  6. )
  7. func detectDefaultGCCap(root string) int64 {
  8. var st syscall.Statfs_t
  9. if err := syscall.Statfs(root, &st); err != nil {
  10. return defaultCap
  11. }
  12. diskSize := int64(st.Bsize) * int64(st.Blocks) //nolint unconvert
  13. avail := diskSize / 10
  14. return (avail/(1<<30) + 1) * 1e9 // round up
  15. }