Linux上ru_maxrss的单位是什么?

这是来自man getrusage

 struct rusage { struct timeval ru_utime; /* user time used */ struct timeval ru_stime; /* system time used */ long ru_maxrss; /* maximum resident set size */ long ru_ixrss; /* integral shared memory size */ long ru_idrss; /* integral unshared data size */ long ru_isrss; /* integral unshared stack size */ long ru_minflt; /* page reclaims */ long ru_majflt; /* page faults */ long ru_nswap; /* swaps */ long ru_inblock; /* block input operations */ long ru_oublock; /* block output operations */ long ru_msgsnd; /* messages sent */ long ru_msgrcv; /* messages received */ long ru_nsignals; /* signals received */ long ru_nvcsw; /* voluntary context switches */ long ru_nivcsw; /* involuntary context switches */ }; 

但是没有说明什么是单位。

我看到FreeBSD的说明文件是千字节的,但是我不确定它在Linux上的单位。

这不是一个标准的rusage结构领域,所以POSIX不要求任何事情。 但在Linux上

ru_maxrss (自Linux 2.6.32开始)

这是使用的最大驻留集合大小( 以千字节为单位 )。 对于RUSAGE_CHILDREN,这是最大子级的驻留集大小,而不是进程树的最大驻留集大小。

手册页说:

ru_maxrss (自Linux 2.6.32开始)

这是使用的最大驻留集大小(以千字节为单位)。 对于RUSAGE_CHILDREN ,这是最大子级的驻留集大小,而不是进程树的最大驻留集大小。

所以,它以千字节表示,就像在BSD中一样。