[root@robot ~]# cat /proc/sys/kernel/pid_max // 最大进程数 32768 [root@robot ~]# cat /proc/sys/kernel/threads-max // 最大线程数 15856 [root@robot ~]# cat /proc/sys/fs/file-max // 最大文件描述符数 101386 [root@robot ~]#
Linux内核提供了一种通过/proc文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。
用户可以通过/proc文件系统与内核进行交互。从上面的例子再次可以看出/proc与内核的关系是多么的“亲密”。我们可以
从/proc知道更多的信息。
ulimit命令,也可查看系统一些极限设置值,也可以设置它们。比如可以设置core.xxx文件的大小。
[root@robot ~]# ulimit -a core file size (blocks, -c) unlimited data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 7928 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 1024 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited [root@robot ~]#
-a All current limits are reported -b The maximum socket buffer size -c The maximum size of core files created -d The maximum size of a process's data segment -e The maximum scheduling priority ("nice") -f The maximum size of files written by the shell and its chil- dren -i The maximum number of pending signals -l The maximum size that may be locked into memory -m The maximum resident set size (many systems do not honor this limit) -n The maximum number of open file descriptors (most systems do not allow this value to be set) -p The pipe size in 512-byte blocks (this may not be set) -q The maximum number of bytes in POSIX message queues -r The maximum real-time scheduling priority -s The maximum stack size -t The maximum amount of cpu time in seconds -u The maximum number of processes available to a single user -v The maximum amount of virtual memory available to the shell -x The maximum number of file locks -T The maximum number of threads
参考了chinaunix一位网友的理解:
/proc/sys/fs/file-max 这个值是整个操作系统能打开的最大文件数
[root@mail t2]# ulimit -a
core file size (blocks, -c) 10240
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
pending signals (-i) 1024
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
这个值是一个用户的一个进程能打开的最大文件数
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 8063
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
有些值也可以通过sysconf函数进行设置和取得:
(转载)http://www.cnblogs.com/leaven/archive/2011/01/14/1935181.html
引用#include <unistd.h>
long sysconf ( int name);
引用_SC_2_C_BIND : 一个布尔值,指出是否支持 POSIX C 语言绑定。返回值是 _POSIX2_C_BIND 。
_SC_2_C_DEV : 一个布尔值,指出是否支持 POSIX C 语言开发使用工具选项。返回值是 _POSIX2_C_DEV 。
_SC_2_C_VERSION : 它指出支持哪一个 ISO POSIX.2 标准 (命令) 的版本。返回值是 _POSIX2_C_VERSION 。
_SC_2_CHAR_TERM : 一个布尔值,指出是否至少支持一个终端。返回值是 _POSIX2_CHAR_TERM 。
_SC_2_FORT_DEV : 一个布尔值,指出是否支持 FORTRAN 开发使用工具选项。返回值是 POSIX2_FORT_DEV 。