gc_unix.go 343 B

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