Posix_resourcePOSIX resource usage and limits.
This module provides OCaml bindings to POSIX resource functions defined in sys/resource.h.
It includes functions for querying and setting resource limits, getting resource usage statistics, and managing process priorities.
(* Get resource usage for current process *)
let usage = Posix_resource.getrusage rusage_self in
Printf.printf "User CPU time: %s\n"
(Posix_time2.Timeval.to_string usage.ru_utime);
Printf.printf "Max RSS: %Ld KB\n" usage.ru_maxrss;
(* Get file descriptor limit *)
let limits = Posix_resource.getrlimit rlimit_nofile in
Printf.printf "Max open files: %s\n"
(Unsigned.UInt64.to_string limits.rlim_cur)type rusage = {ru_utime : Posix_time2.Timeval.t;ru_stime : Posix_time2.Timeval.t;ru_maxrss : int64;ru_ixrss : int64;ru_idrss : int64;ru_isrss : int64;ru_minflt : int64;ru_majflt : int64;ru_nswap : int64;ru_inblock : int64;ru_oublock : int64;ru_msgsnd : int64;ru_msgrcv : int64;ru_nsignals : int64;ru_nvcsw : int64;ru_nivcsw : int64;}Resource usage information returned by getrusage. Corresponds to POSIX struct rusage.
val getrlimit : int -> rlimitGet resource limits.
See getrlimit(2).
val setrlimit : int -> rlimit -> unitSet resource limits.
See setrlimit(2).
val getrusage : int -> rusageGet resource usage statistics.
See getrusage(2).
Get process scheduling priority.
See getpriority(2).
Set process scheduling priority.
See setpriority(2).