blob: 1458448436cc4589bc329167ba945eb92719792b [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001Documentation for /proc/sys/fs/* kernel version 2.2.10
2 (c) 1998, 1999, Rik van Riel <riel@nl.linux.org>
Shen Feng760df932009-04-02 16:57:20 -07003 (c) 2009, Shen Feng<shen@cn.fujitsu.com>
Linus Torvalds1da177e2005-04-16 15:20:36 -07004
5For general info and legal blurb, please look in README.
6
7==============================================================
8
9This file contains documentation for the sysctl files in
10/proc/sys/fs/ and is valid for Linux kernel version 2.2.
11
12The files in this directory can be used to tune and monitor
13miscellaneous and general things in the operation of the Linux
14kernel. Since some of the files _can_ be used to screw up your
15system, it is advisable to read both documentation and source
16before actually making adjustments.
17
Shen Feng760df932009-04-02 16:57:20 -0700181. /proc/sys/fs
19----------------------------------------------------------
20
Linus Torvalds1da177e2005-04-16 15:20:36 -070021Currently, these files are in /proc/sys/fs:
Shen Feng760df932009-04-02 16:57:20 -070022- aio-max-nr
23- aio-nr
Linus Torvalds1da177e2005-04-16 15:20:36 -070024- dentry-state
25- dquot-max
26- dquot-nr
27- file-max
28- file-nr
29- inode-max
30- inode-nr
31- inode-state
Eric Dumazet9cfe0152008-02-06 01:37:16 -080032- nr_open
Linus Torvalds1da177e2005-04-16 15:20:36 -070033- overflowuid
34- overflowgid
Alexey Dobriyana2e0b562006-08-27 01:23:28 -070035- suid_dumpable
Linus Torvalds1da177e2005-04-16 15:20:36 -070036- super-max
37- super-nr
38
Shen Feng760df932009-04-02 16:57:20 -070039==============================================================
40
41aio-nr & aio-max-nr:
42
43aio-nr is the running total of the number of events specified on the
44io_setup system call for all currently active aio contexts. If aio-nr
45reaches aio-max-nr then io_setup will fail with EAGAIN. Note that
46raising aio-max-nr does not result in the pre-allocation or re-sizing
47of any kernel data structures.
Linus Torvalds1da177e2005-04-16 15:20:36 -070048
49==============================================================
50
51dentry-state:
52
53From linux/fs/dentry.c:
54--------------------------------------------------------------
55struct {
56 int nr_dentry;
57 int nr_unused;
58 int age_limit; /* age in seconds */
59 int want_pages; /* pages requested by system */
60 int dummy[2];
61} dentry_stat = {0, 0, 45, 0,};
62--------------------------------------------------------------
63
64Dentries are dynamically allocated and deallocated, and
65nr_dentry seems to be 0 all the time. Hence it's safe to
66assume that only nr_unused, age_limit and want_pages are
67used. Nr_unused seems to be exactly what its name says.
68Age_limit is the age in seconds after which dcache entries
69can be reclaimed when memory is short and want_pages is
70nonzero when shrink_dcache_pages() has been called and the
71dcache isn't pruned yet.
72
73==============================================================
74
75dquot-max & dquot-nr:
76
77The file dquot-max shows the maximum number of cached disk
78quota entries.
79
80The file dquot-nr shows the number of allocated disk quota
81entries and the number of free disk quota entries.
82
83If the number of free cached disk quotas is very low and
84you have some awesome number of simultaneous system users,
85you might want to raise the limit.
86
87==============================================================
88
89file-max & file-nr:
90
91The kernel allocates file handles dynamically, but as yet it
92doesn't free them again.
93
94The value in file-max denotes the maximum number of file-
95handles that the Linux kernel will allocate. When you get lots
96of error messages about running out of file handles, you might
97want to increase this limit.
98
99The three values in file-nr denote the number of allocated
100file handles, the number of unused file handles and the maximum
101number of file handles. When the allocated file handles come
102close to the maximum, but the number of unused file handles is
103significantly greater than 0, you've encountered a peak in your
104usage of file handles and you don't need to increase the maximum.
105
106==============================================================
107
Eric Dumazet9cfe0152008-02-06 01:37:16 -0800108nr_open:
109
110This denotes the maximum number of file-handles a process can
111allocate. Default value is 1024*1024 (1048576) which should be
112enough for most machines. Actual limit depends on RLIMIT_NOFILE
113resource limit.
114
115==============================================================
116
Linus Torvalds1da177e2005-04-16 15:20:36 -0700117inode-max, inode-nr & inode-state:
118
119As with file handles, the kernel allocates the inode structures
120dynamically, but can't free them yet.
121
122The value in inode-max denotes the maximum number of inode
123handlers. This value should be 3-4 times larger than the value
124in file-max, since stdin, stdout and network sockets also
125need an inode struct to handle them. When you regularly run
126out of inodes, you need to increase this value.
127
128The file inode-nr contains the first two items from
129inode-state, so we'll skip to that file...
130
131Inode-state contains three actual numbers and four dummies.
132The actual numbers are, in order of appearance, nr_inodes,
133nr_free_inodes and preshrink.
134
135Nr_inodes stands for the number of inodes the system has
136allocated, this can be slightly more than inode-max because
137Linux allocates them one pageful at a time.
138
139Nr_free_inodes represents the number of free inodes (?) and
140preshrink is nonzero when the nr_inodes > inode-max and the
141system needs to prune the inode list instead of allocating
142more.
143
144==============================================================
145
146overflowgid & overflowuid:
147
148Some filesystems only support 16-bit UIDs and GIDs, although in Linux
149UIDs and GIDs are 32 bits. When one of these filesystems is mounted
150with writes enabled, any UID or GID that would exceed 65535 is translated
151to a fixed value before being written to disk.
152
153These sysctls allow you to change the value of the fixed UID and GID.
154The default is 65534.
155
156==============================================================
157
Alexey Dobriyana2e0b562006-08-27 01:23:28 -0700158suid_dumpable:
159
160This value can be used to query and set the core dump mode for setuid
161or otherwise protected/tainted binaries. The modes are
162
1630 - (default) - traditional behaviour. Any process which has changed
164 privilege levels or is execute only will not be dumped
1651 - (debug) - all processes dump core when possible. The core dump is
166 owned by the current user and no security is applied. This is
167 intended for system debugging situations only. Ptrace is unchecked.
1682 - (suidsafe) - any binary which normally would not be dumped is dumped
169 readable by root only. This allows the end user to remove
170 such a dump but not access it directly. For security reasons
171 core dumps in this mode will not overwrite one another or
Matt LaPlante5d3f0832006-11-30 05:21:10 +0100172 other files. This mode is appropriate when administrators are
Alexey Dobriyana2e0b562006-08-27 01:23:28 -0700173 attempting to debug problems in a normal environment.
174
175==============================================================
176
Linus Torvalds1da177e2005-04-16 15:20:36 -0700177super-max & super-nr:
178
179These numbers control the maximum number of superblocks, and
180thus the maximum number of mounted filesystems the kernel
181can have. You only need to increase super-max if you need to
182mount more filesystems than the current value in super-max
183allows you to.
184
185==============================================================
186
187aio-nr & aio-max-nr:
188
189aio-nr shows the current system-wide number of asynchronous io
190requests. aio-max-nr allows you to change the maximum value
191aio-nr can grow to.
192
193==============================================================
Shen Feng760df932009-04-02 16:57:20 -0700194
195
1962. /proc/sys/fs/binfmt_misc
197----------------------------------------------------------
198
199Documentation for the files in /proc/sys/fs/binfmt_misc is
200in Documentation/binfmt_misc.txt.
201
202
2033. /proc/sys/fs/mqueue - POSIX message queues filesystem
204----------------------------------------------------------
205
206The "mqueue" filesystem provides the necessary kernel features to enable the
207creation of a user space library that implements the POSIX message queues
208API (as noted by the MSG tag in the POSIX 1003.1-2001 version of the System
209Interfaces specification.)
210
211The "mqueue" filesystem contains values for determining/setting the amount of
212resources used by the file system.
213
214/proc/sys/fs/mqueue/queues_max is a read/write file for setting/getting the
215maximum number of message queues allowed on the system.
216
217/proc/sys/fs/mqueue/msg_max is a read/write file for setting/getting the
218maximum number of messages in a queue value. In fact it is the limiting value
219for another (user) limit which is set in mq_open invocation. This attribute of
220a queue must be less or equal then msg_max.
221
222/proc/sys/fs/mqueue/msgsize_max is a read/write file for setting/getting the
223maximum message size value (it is every message queue's attribute set during
224its creation).
225
226
2274. /proc/sys/fs/epoll - Configuration options for the epoll interface
228--------------------------------------------------------
229
230This directory contains configuration options for the epoll(7) interface.
231
232max_user_instances
233------------------
234
235This is the maximum number of epoll file descriptors that a single user can
236have open at a given time. The default value is 128, and should be enough
237for normal users.
238
239max_user_watches
240----------------
241
242Every epoll file descriptor can store a number of files to be monitored
243for event readiness. Each one of these monitored files constitutes a "watch".
244This configuration option sets the maximum number of "watches" that are
245allowed for each user.
246Each "watch" costs roughly 90 bytes on a 32bit kernel, and roughly 160 bytes
247on a 64bit one.
248The current default value for max_user_watches is the 1/32 of the available
249low memory, divided for the "watch" cost in bytes.
250