Module Posix_resource

High-level API to <sys/resource.h>. See: sys/resource.h for details on data structures and functions.

Resource limit constants

val rlimit_cpu : int

CPU time limit in seconds

val rlimit_fsize : int

Maximum file size

val rlimit_data : int

Maximum data segment size

val rlimit_stack : int

Maximum stack size

val rlimit_core : int

Maximum core file size

val rlimit_nofile : int

Maximum number of open files

val rlimit_as : int

Maximum address space size

val rlim_infinity : Unsigned.uint64

Special value meaning no limit

Resource usage constants

val rusage_self : int

Current process

val rusage_children : int

All terminated and waited-for children

Priority constants

val prio_process : int

Process priority

val prio_pgrp : int

Process group priority

val prio_user : int

User priority

Resource limit types

type rlimit = {
  1. rlim_cur : Unsigned.uint64;
    (*

    Current (soft) limit

    *)
  2. rlim_max : Unsigned.uint64;
    (*

    Maximum (hard) limit

    *)
}

Resource usage types

type rusage = {
  1. ru_utime : Posix_time2.Timeval.t;
    (*

    User CPU time used

    *)
  2. ru_stime : Posix_time2.Timeval.t;
    (*

    System CPU time used

    *)
  3. ru_maxrss : int64;
    (*

    Maximum resident set size

    *)
  4. ru_ixrss : int64;
    (*

    Integral shared memory size

    *)
  5. ru_idrss : int64;
    (*

    Integral unshared data size

    *)
  6. ru_isrss : int64;
    (*

    Integral unshared stack size

    *)
  7. ru_minflt : int64;
    (*

    Page reclaims (soft page faults)

    *)
  8. ru_majflt : int64;
    (*

    Page faults (hard page faults)

    *)
  9. ru_nswap : int64;
    (*

    Swaps

    *)
  10. ru_inblock : int64;
    (*

    Block input operations

    *)
  11. ru_oublock : int64;
    (*

    Block output operations

    *)
  12. ru_msgsnd : int64;
    (*

    IPC messages sent

    *)
  13. ru_msgrcv : int64;
    (*

    IPC messages received

    *)
  14. ru_nsignals : int64;
    (*

    Signals received

    *)
  15. ru_nvcsw : int64;
    (*

    Voluntary context switches

    *)
  16. ru_nivcsw : int64;
    (*

    Involuntary context switches

    *)
}

Resource limit functions

val getrlimit : int -> rlimit

getrlimit resource returns the current resource limits for resource.

  • raises Unix.Unix_error

    on failure

val setrlimit : int -> rlimit -> unit

setrlimit resource limits sets the resource limits for resource.

  • raises Unix.Unix_error

    on failure

Resource usage functions

val getrusage : int -> rusage

getrusage who returns resource usage statistics. who should be rusage_self or rusage_children.

  • raises Unix.Unix_error

    on failure

Priority functions

val getpriority : int -> int -> int

getpriority which who returns the priority of process, process group, or user. which should be prio_process, prio_pgrp, or prio_user.

  • raises Unix.Unix_error

    on failure

val setpriority : int -> int -> int -> unit

setpriority which who prio sets the priority.

  • raises Unix.Unix_error

    on failure