aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/filesystems/proc.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/filesystems/proc.txt')
-rw-r--r--Documentation/filesystems/proc.txt1118
1 files changed, 28 insertions, 1090 deletions
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt
index 830bad7cce0f..ce84cfc9eae0 100644
--- a/Documentation/filesystems/proc.txt
+++ b/Documentation/filesystems/proc.txt
@@ -5,6 +5,7 @@
5 Bodo Bauer <bb@ricochet.net> 5 Bodo Bauer <bb@ricochet.net>
6 6
72.4.x update Jorge Nerin <comandante@zaralinux.com> November 14 2000 72.4.x update Jorge Nerin <comandante@zaralinux.com> November 14 2000
8move /proc/sys Shen Feng <shen@cn.fujitsu.com> April 1 2009
8------------------------------------------------------------------------------ 9------------------------------------------------------------------------------
9Version 1.3 Kernel version 2.2.12 10Version 1.3 Kernel version 2.2.12
10 Kernel version 2.4.0-test11-pre4 11 Kernel version 2.4.0-test11-pre4
@@ -26,25 +27,17 @@ Table of Contents
26 1.6 Parallel port info in /proc/parport 27 1.6 Parallel port info in /proc/parport
27 1.7 TTY info in /proc/tty 28 1.7 TTY info in /proc/tty
28 1.8 Miscellaneous kernel statistics in /proc/stat 29 1.8 Miscellaneous kernel statistics in /proc/stat
30 1.9 Ext4 file system parameters
29 31
30 2 Modifying System Parameters 32 2 Modifying System Parameters
31 2.1 /proc/sys/fs - File system data 33
32 2.2 /proc/sys/fs/binfmt_misc - Miscellaneous binary formats 34 3 Per-Process Parameters
33 2.3 /proc/sys/kernel - general kernel parameters 35 3.1 /proc/<pid>/oom_adj - Adjust the oom-killer score
34 2.4 /proc/sys/vm - The virtual memory subsystem 36 3.2 /proc/<pid>/oom_score - Display current oom-killer score
35 2.5 /proc/sys/dev - Device specific parameters 37 3.3 /proc/<pid>/io - Display the IO accounting fields
36 2.6 /proc/sys/sunrpc - Remote procedure calls 38 3.4 /proc/<pid>/coredump_filter - Core dump filtering settings
37 2.7 /proc/sys/net - Networking stuff 39 3.5 /proc/<pid>/mountinfo - Information about mounts
38 2.8 /proc/sys/net/ipv4 - IPV4 settings 40
39 2.9 Appletalk
40 2.10 IPX
41 2.11 /proc/sys/fs/mqueue - POSIX message queues filesystem
42 2.12 /proc/<pid>/oom_adj - Adjust the oom-killer score
43 2.13 /proc/<pid>/oom_score - Display current oom-killer score
44 2.14 /proc/<pid>/io - Display the IO accounting fields
45 2.15 /proc/<pid>/coredump_filter - Core dump filtering settings
46 2.16 /proc/<pid>/mountinfo - Information about mounts
47 2.17 /proc/sys/fs/epoll - Configuration options for the epoll interface
48 41
49------------------------------------------------------------------------------ 42------------------------------------------------------------------------------
50Preface 43Preface
@@ -940,27 +933,6 @@ Table 1-10: Files in /proc/fs/ext4/<devname>
940 File Content 933 File Content
941 mb_groups details of multiblock allocator buddy cache of free blocks 934 mb_groups details of multiblock allocator buddy cache of free blocks
942 mb_history multiblock allocation history 935 mb_history multiblock allocation history
943 stats controls whether the multiblock allocator should start
944 collecting statistics, which are shown during the unmount
945 group_prealloc the multiblock allocator will round up allocation
946 requests to a multiple of this tuning parameter if the
947 stripe size is not set in the ext4 superblock
948 max_to_scan The maximum number of extents the multiblock allocator
949 will search to find the best extent
950 min_to_scan The minimum number of extents the multiblock allocator
951 will search to find the best extent
952 order2_req Tuning parameter which controls the minimum size for
953 requests (as a power of 2) where the buddy cache is
954 used
955 stream_req Files which have fewer blocks than this tunable
956 parameter will have their blocks allocated out of a
957 block group specific preallocation pool, so that small
958 files are packed closely together. Each large file
959 will have its blocks allocated out of its own unique
960 preallocation pool.
961inode_readahead Tuning parameter which controls the maximum number of
962 inode table blocks that ext4's inode table readahead
963 algorithm will pre-read into the buffer cache
964.............................................................................. 936..............................................................................
965 937
966 938
@@ -1011,1021 +983,24 @@ review the kernel documentation in the directory /usr/src/linux/Documentation.
1011This chapter is heavily based on the documentation included in the pre 2.2 983This chapter is heavily based on the documentation included in the pre 2.2
1012kernels, and became part of it in version 2.2.1 of the Linux kernel. 984kernels, and became part of it in version 2.2.1 of the Linux kernel.
1013 985
10142.1 /proc/sys/fs - File system data 986Please see: Documentation/sysctls/ directory for descriptions of these
1015-----------------------------------
1016
1017This subdirectory contains specific file system, file handle, inode, dentry
1018and quota information.
1019
1020Currently, these files are in /proc/sys/fs:
1021
1022dentry-state
1023------------
1024
1025Status of the directory cache. Since directory entries are dynamically
1026allocated and deallocated, this file indicates the current status. It holds
1027six values, in which the last two are not used and are always zero. The others
1028are listed in table 2-1.
1029
1030
1031Table 2-1: Status files of the directory cache
1032..............................................................................
1033 File Content
1034 nr_dentry Almost always zero
1035 nr_unused Number of unused cache entries
1036 age_limit
1037 in seconds after the entry may be reclaimed, when memory is short
1038 want_pages internally
1039..............................................................................
1040
1041dquot-nr and dquot-max
1042----------------------
1043
1044The file dquot-max shows the maximum number of cached disk quota entries.
1045
1046The file dquot-nr shows the number of allocated disk quota entries and the
1047number of free disk quota entries.
1048
1049If the number of available cached disk quotas is very low and you have a large
1050number of simultaneous system users, you might want to raise the limit.
1051
1052file-nr and file-max
1053--------------------
1054
1055The kernel allocates file handles dynamically, but doesn't free them again at
1056this time.
1057
1058The value in file-max denotes the maximum number of file handles that the
1059Linux kernel will allocate. When you get a lot of error messages about running
1060out of file handles, you might want to raise this limit. The default value is
106110% of RAM in kilobytes. To change it, just write the new number into the
1062file:
1063
1064 # cat /proc/sys/fs/file-max
1065 4096
1066 # echo 8192 > /proc/sys/fs/file-max
1067 # cat /proc/sys/fs/file-max
1068 8192
1069
1070
1071This method of revision is useful for all customizable parameters of the
1072kernel - simply echo the new value to the corresponding file.
1073
1074Historically, the three values in file-nr denoted the number of allocated file
1075handles, the number of allocated but unused file handles, and the maximum
1076number of file handles. Linux 2.6 always reports 0 as the number of free file
1077handles -- this is not an error, it just means that the number of allocated
1078file handles exactly matches the number of used file handles.
1079
1080Attempts to allocate more file descriptors than file-max are reported with
1081printk, look for "VFS: file-max limit <number> reached".
1082
1083inode-state and inode-nr
1084------------------------
1085
1086The file inode-nr contains the first two items from inode-state, so we'll skip
1087to that file...
1088
1089inode-state contains two actual numbers and five dummy values. The numbers
1090are nr_inodes and nr_free_inodes (in order of appearance).
1091
1092nr_inodes
1093~~~~~~~~~
1094
1095Denotes the number of inodes the system has allocated. This number will
1096grow and shrink dynamically.
1097
1098nr_open
1099-------
1100
1101Denotes the maximum number of file-handles a process can
1102allocate. Default value is 1024*1024 (1048576) which should be
1103enough for most machines. Actual limit depends on RLIMIT_NOFILE
1104resource limit.
1105
1106nr_free_inodes
1107--------------
1108
1109Represents the number of free inodes. Ie. The number of inuse inodes is
1110(nr_inodes - nr_free_inodes).
1111
1112aio-nr and aio-max-nr
1113---------------------
1114
1115aio-nr is the running total of the number of events specified on the
1116io_setup system call for all currently active aio contexts. If aio-nr
1117reaches aio-max-nr then io_setup will fail with EAGAIN. Note that
1118raising aio-max-nr does not result in the pre-allocation or re-sizing
1119of any kernel data structures.
1120
11212.2 /proc/sys/fs/binfmt_misc - Miscellaneous binary formats
1122-----------------------------------------------------------
1123
1124Besides these files, there is the subdirectory /proc/sys/fs/binfmt_misc. This
1125handles the kernel support for miscellaneous binary formats.
1126
1127Binfmt_misc provides the ability to register additional binary formats to the
1128Kernel without compiling an additional module/kernel. Therefore, binfmt_misc
1129needs to know magic numbers at the beginning or the filename extension of the
1130binary.
1131
1132It works by maintaining a linked list of structs that contain a description of
1133a binary format, including a magic with size (or the filename extension),
1134offset and mask, and the interpreter name. On request it invokes the given
1135interpreter with the original program as argument, as binfmt_java and
1136binfmt_em86 and binfmt_mz do. Since binfmt_misc does not define any default
1137binary-formats, you have to register an additional binary-format.
1138
1139There are two general files in binfmt_misc and one file per registered format.
1140The two general files are register and status.
1141
1142Registering a new binary format
1143-------------------------------
1144
1145To register a new binary format you have to issue the command
1146
1147 echo :name:type:offset:magic:mask:interpreter: > /proc/sys/fs/binfmt_misc/register
1148
1149
1150
1151with appropriate name (the name for the /proc-dir entry), offset (defaults to
11520, if omitted), magic, mask (which can be omitted, defaults to all 0xff) and
1153last but not least, the interpreter that is to be invoked (for example and
1154testing /bin/echo). Type can be M for usual magic matching or E for filename
1155extension matching (give extension in place of magic).
1156
1157Check or reset the status of the binary format handler
1158------------------------------------------------------
1159
1160If you do a cat on the file /proc/sys/fs/binfmt_misc/status, you will get the
1161current status (enabled/disabled) of binfmt_misc. Change the status by echoing
11620 (disables) or 1 (enables) or -1 (caution: this clears all previously
1163registered binary formats) to status. For example echo 0 > status to disable
1164binfmt_misc (temporarily).
1165
1166Status of a single handler
1167--------------------------
1168
1169Each registered handler has an entry in /proc/sys/fs/binfmt_misc. These files
1170perform the same function as status, but their scope is limited to the actual
1171binary format. By cating this file, you also receive all related information
1172about the interpreter/magic of the binfmt.
1173
1174Example usage of binfmt_misc (emulate binfmt_java)
1175--------------------------------------------------
1176
1177 cd /proc/sys/fs/binfmt_misc
1178 echo ':Java:M::\xca\xfe\xba\xbe::/usr/local/java/bin/javawrapper:' > register
1179 echo ':HTML:E::html::/usr/local/java/bin/appletviewer:' > register
1180 echo ':Applet:M::<!--applet::/usr/local/java/bin/appletviewer:' > register
1181 echo ':DEXE:M::\x0eDEX::/usr/bin/dosexec:' > register
1182
1183
1184These four lines add support for Java executables and Java applets (like
1185binfmt_java, additionally recognizing the .html extension with no need to put
1186<!--applet> to every applet file). You have to install the JDK and the
1187shell-script /usr/local/java/bin/javawrapper too. It works around the
1188brokenness of the Java filename handling. To add a Java binary, just create a
1189link to the class-file somewhere in the path.
1190
11912.3 /proc/sys/kernel - general kernel parameters
1192------------------------------------------------
1193
1194This directory reflects general kernel behaviors. As I've said before, the
1195contents depend on your configuration. Here you'll find the most important
1196files, along with descriptions of what they mean and how to use them.
1197
1198acct
1199----
1200
1201The file contains three values; highwater, lowwater, and frequency.
1202
1203It exists only when BSD-style process accounting is enabled. These values
1204control its behavior. If the free space on the file system where the log lives
1205goes below lowwater percentage, accounting suspends. If it goes above
1206highwater percentage, accounting resumes. Frequency determines how often you
1207check the amount of free space (value is in seconds). Default settings are: 4,
12082, and 30. That is, suspend accounting if there is less than 2 percent free;
1209resume it if we have a value of 3 or more percent; consider information about
1210the amount of free space valid for 30 seconds
1211
1212ctrl-alt-del
1213------------
1214
1215When the value in this file is 0, ctrl-alt-del is trapped and sent to the init
1216program to handle a graceful restart. However, when the value is greater that
1217zero, Linux's reaction to this key combination will be an immediate reboot,
1218without syncing its dirty buffers.
1219
1220[NOTE]
1221 When a program (like dosemu) has the keyboard in raw mode, the
1222 ctrl-alt-del is intercepted by the program before it ever reaches the
1223 kernel tty layer, and it is up to the program to decide what to do with
1224 it.
1225
1226domainname and hostname
1227-----------------------
1228
1229These files can be controlled to set the NIS domainname and hostname of your
1230box. For the classic darkstar.frop.org a simple:
1231
1232 # echo "darkstar" > /proc/sys/kernel/hostname
1233 # echo "frop.org" > /proc/sys/kernel/domainname
1234
1235
1236would suffice to set your hostname and NIS domainname.
1237
1238osrelease, ostype and version
1239-----------------------------
1240
1241The names make it pretty obvious what these fields contain:
1242
1243 > cat /proc/sys/kernel/osrelease
1244 2.2.12
1245
1246 > cat /proc/sys/kernel/ostype
1247 Linux
1248
1249 > cat /proc/sys/kernel/version
1250 #4 Fri Oct 1 12:41:14 PDT 1999
1251
1252
1253The files osrelease and ostype should be clear enough. Version needs a little
1254more clarification. The #4 means that this is the 4th kernel built from this
1255source base and the date after it indicates the time the kernel was built. The
1256only way to tune these values is to rebuild the kernel.
1257
1258panic
1259-----
1260
1261The value in this file represents the number of seconds the kernel waits
1262before rebooting on a panic. When you use the software watchdog, the
1263recommended setting is 60. If set to 0, the auto reboot after a kernel panic
1264is disabled, which is the default setting.
1265
1266printk
1267------
1268
1269The four values in printk denote
1270* console_loglevel,
1271* default_message_loglevel,
1272* minimum_console_loglevel and
1273* default_console_loglevel
1274respectively.
1275
1276These values influence printk() behavior when printing or logging error
1277messages, which come from inside the kernel. See syslog(2) for more
1278information on the different log levels.
1279
1280console_loglevel
1281----------------
1282
1283Messages with a higher priority than this will be printed to the console.
1284
1285default_message_level
1286---------------------
1287
1288Messages without an explicit priority will be printed with this priority.
1289
1290minimum_console_loglevel
1291------------------------
1292
1293Minimum (highest) value to which the console_loglevel can be set.
1294
1295default_console_loglevel
1296------------------------
1297
1298Default value for console_loglevel.
1299
1300sg-big-buff
1301-----------
1302
1303This file shows the size of the generic SCSI (sg) buffer. At this point, you
1304can't tune it yet, but you can change it at compile time by editing
1305include/scsi/sg.h and changing the value of SG_BIG_BUFF.
1306
1307If you use a scanner with SANE (Scanner Access Now Easy) you might want to set
1308this to a higher value. Refer to the SANE documentation on this issue.
1309
1310modprobe
1311--------
1312
1313The location where the modprobe binary is located. The kernel uses this
1314program to load modules on demand.
1315
1316unknown_nmi_panic
1317-----------------
1318
1319The value in this file affects behavior of handling NMI. When the value is
1320non-zero, unknown NMI is trapped and then panic occurs. At that time, kernel
1321debugging information is displayed on console.
1322
1323NMI switch that most IA32 servers have fires unknown NMI up, for example.
1324If a system hangs up, try pressing the NMI switch.
1325
1326panic_on_unrecovered_nmi
1327------------------------
1328
1329The default Linux behaviour on an NMI of either memory or unknown is to continue
1330operation. For many environments such as scientific computing it is preferable
1331that the box is taken out and the error dealt with than an uncorrected
1332parity/ECC error get propogated.
1333
1334A small number of systems do generate NMI's for bizarre random reasons such as
1335power management so the default is off. That sysctl works like the existing
1336panic controls already in that directory.
1337
1338nmi_watchdog
1339------------
1340
1341Enables/Disables the NMI watchdog on x86 systems. When the value is non-zero
1342the NMI watchdog is enabled and will continuously test all online cpus to
1343determine whether or not they are still functioning properly. Currently,
1344passing "nmi_watchdog=" parameter at boot time is required for this function
1345to work.
1346
1347If LAPIC NMI watchdog method is in use (nmi_watchdog=2 kernel parameter), the
1348NMI watchdog shares registers with oprofile. By disabling the NMI watchdog,
1349oprofile may have more registers to utilize.
1350
1351msgmni
1352------
1353
1354Maximum number of message queue ids on the system.
1355This value scales to the amount of lowmem. It is automatically recomputed
1356upon memory add/remove or ipc namespace creation/removal.
1357When a value is written into this file, msgmni's value becomes fixed, i.e. it
1358is not recomputed anymore when one of the above events occurs.
1359Use auto_msgmni to change this behavior.
1360
1361auto_msgmni
1362-----------
1363
1364Enables/Disables automatic recomputing of msgmni upon memory add/remove or
1365upon ipc namespace creation/removal (see the msgmni description above).
1366Echoing "1" into this file enables msgmni automatic recomputing.
1367Echoing "0" turns it off.
1368auto_msgmni default value is 1.
1369
1370
13712.4 /proc/sys/vm - The virtual memory subsystem
1372-----------------------------------------------
1373
1374Please see: Documentation/sysctls/vm.txt for a description of these
1375entries. 987entries.
1376 988
989------------------------------------------------------------------------------
990Summary
991------------------------------------------------------------------------------
992Certain aspects of kernel behavior can be modified at runtime, without the
993need to recompile the kernel, or even to reboot the system. The files in the
994/proc/sys tree can not only be read, but also modified. You can use the echo
995command to write value into these files, thereby changing the default settings
996of the kernel.
997------------------------------------------------------------------------------
1377 998
13782.5 /proc/sys/dev - Device specific parameters 999------------------------------------------------------------------------------
1379---------------------------------------------- 1000CHAPTER 3: PER-PROCESS PARAMETERS
1380 1001------------------------------------------------------------------------------
1381Currently there is only support for CDROM drives, and for those, there is only
1382one read-only file containing information about the CD-ROM drives attached to
1383the system:
1384
1385 >cat /proc/sys/dev/cdrom/info
1386 CD-ROM information, Id: cdrom.c 2.55 1999/04/25
1387
1388 drive name: sr0 hdb
1389 drive speed: 32 40
1390 drive # of slots: 1 0
1391 Can close tray: 1 1
1392 Can open tray: 1 1
1393 Can lock tray: 1 1
1394 Can change speed: 1 1
1395 Can select disk: 0 1
1396 Can read multisession: 1 1
1397 Can read MCN: 1 1
1398 Reports media changed: 1 1
1399 Can play audio: 1 1
1400
1401
1402You see two drives, sr0 and hdb, along with a list of their features.
1403
14042.6 /proc/sys/sunrpc - Remote procedure calls
1405---------------------------------------------
1406
1407This directory contains four files, which enable or disable debugging for the
1408RPC functions NFS, NFS-daemon, RPC and NLM. The default values are 0. They can
1409be set to one to turn debugging on. (The default value is 0 for each)
1410
14112.7 /proc/sys/net - Networking stuff
1412------------------------------------
1413
1414The interface to the networking parts of the kernel is located in
1415/proc/sys/net. Table 2-3 shows all possible subdirectories. You may see only
1416some of them, depending on your kernel's configuration.
1417
1418
1419Table 2-3: Subdirectories in /proc/sys/net
1420..............................................................................
1421 Directory Content Directory Content
1422 core General parameter appletalk Appletalk protocol
1423 unix Unix domain sockets netrom NET/ROM
1424 802 E802 protocol ax25 AX25
1425 ethernet Ethernet protocol rose X.25 PLP layer
1426 ipv4 IP version 4 x25 X.25 protocol
1427 ipx IPX token-ring IBM token ring
1428 bridge Bridging decnet DEC net
1429 ipv6 IP version 6
1430..............................................................................
1431
1432We will concentrate on IP networking here. Since AX15, X.25, and DEC Net are
1433only minor players in the Linux world, we'll skip them in this chapter. You'll
1434find some short info on Appletalk and IPX further on in this chapter. Review
1435the online documentation and the kernel source to get a detailed view of the
1436parameters for those protocols. In this section we'll discuss the
1437subdirectories printed in bold letters in the table above. As default values
1438are suitable for most needs, there is no need to change these values.
1439
1440/proc/sys/net/core - Network core options
1441-----------------------------------------
1442
1443rmem_default
1444------------
1445
1446The default setting of the socket receive buffer in bytes.
1447
1448rmem_max
1449--------
1450
1451The maximum receive socket buffer size in bytes.
1452
1453wmem_default
1454------------
1455
1456The default setting (in bytes) of the socket send buffer.
1457
1458wmem_max
1459--------
1460
1461The maximum send socket buffer size in bytes.
1462
1463message_burst and message_cost
1464------------------------------
1465
1466These parameters are used to limit the warning messages written to the kernel
1467log from the networking code. They enforce a rate limit to make a
1468denial-of-service attack impossible. A higher message_cost factor, results in
1469fewer messages that will be written. Message_burst controls when messages will
1470be dropped. The default settings limit warning messages to one every five
1471seconds.
1472
1473warnings
1474--------
1475
1476This controls console messages from the networking stack that can occur because
1477of problems on the network like duplicate address or bad checksums. Normally,
1478this should be enabled, but if the problem persists the messages can be
1479disabled.
1480
1481netdev_budget
1482-------------
1483
1484Maximum number of packets taken from all interfaces in one polling cycle (NAPI
1485poll). In one polling cycle interfaces which are registered to polling are
1486probed in a round-robin manner. The limit of packets in one such probe can be
1487set per-device via sysfs class/net/<device>/weight .
1488
1489netdev_max_backlog
1490------------------
1491
1492Maximum number of packets, queued on the INPUT side, when the interface
1493receives packets faster than kernel can process them.
1494
1495optmem_max
1496----------
1497
1498Maximum ancillary buffer size allowed per socket. Ancillary data is a sequence
1499of struct cmsghdr structures with appended data.
1500
1501/proc/sys/net/unix - Parameters for Unix domain sockets
1502-------------------------------------------------------
1503
1504There are only two files in this subdirectory. They control the delays for
1505deleting and destroying socket descriptors.
1506
15072.8 /proc/sys/net/ipv4 - IPV4 settings
1508--------------------------------------
1509
1510IP version 4 is still the most used protocol in Unix networking. It will be
1511replaced by IP version 6 in the next couple of years, but for the moment it's
1512the de facto standard for the internet and is used in most networking
1513environments around the world. Because of the importance of this protocol,
1514we'll have a deeper look into the subtree controlling the behavior of the IPv4
1515subsystem of the Linux kernel.
1516
1517Let's start with the entries in /proc/sys/net/ipv4.
1518
1519ICMP settings
1520-------------
1521
1522icmp_echo_ignore_all and icmp_echo_ignore_broadcasts
1523----------------------------------------------------
1524
1525Turn on (1) or off (0), if the kernel should ignore all ICMP ECHO requests, or
1526just those to broadcast and multicast addresses.
1527
1528Please note that if you accept ICMP echo requests with a broadcast/multi\-cast
1529destination address your network may be used as an exploder for denial of
1530service packet flooding attacks to other hosts.
1531
1532icmp_destunreach_rate, icmp_echoreply_rate, icmp_paramprob_rate and icmp_timeexeed_rate
1533---------------------------------------------------------------------------------------
1534
1535Sets limits for sending ICMP packets to specific targets. A value of zero
1536disables all limiting. Any positive value sets the maximum package rate in
1537hundredth of a second (on Intel systems).
1538
1539IP settings
1540-----------
1541
1542ip_autoconfig
1543-------------
1544
1545This file contains the number one if the host received its IP configuration by
1546RARP, BOOTP, DHCP or a similar mechanism. Otherwise it is zero.
1547
1548ip_default_ttl
1549--------------
1550
1551TTL (Time To Live) for IPv4 interfaces. This is simply the maximum number of
1552hops a packet may travel.
1553
1554ip_dynaddr
1555----------
1556
1557Enable dynamic socket address rewriting on interface address change. This is
1558useful for dialup interface with changing IP addresses.
1559
1560ip_forward
1561----------
1562
1563Enable or disable forwarding of IP packages between interfaces. Changing this
1564value resets all other parameters to their default values. They differ if the
1565kernel is configured as host or router.
1566
1567ip_local_port_range
1568-------------------
1569
1570Range of ports used by TCP and UDP to choose the local port. Contains two
1571numbers, the first number is the lowest port, the second number the highest
1572local port. Default is 1024-4999. Should be changed to 32768-61000 for
1573high-usage systems.
1574
1575ip_no_pmtu_disc
1576---------------
1577
1578Global switch to turn path MTU discovery off. It can also be set on a per
1579socket basis by the applications or on a per route basis.
1580
1581ip_masq_debug
1582-------------
1583
1584Enable/disable debugging of IP masquerading.
1585
1586IP fragmentation settings
1587-------------------------
1588
1589ipfrag_high_trash and ipfrag_low_trash
1590--------------------------------------
1591
1592Maximum memory used to reassemble IP fragments. When ipfrag_high_thresh bytes
1593of memory is allocated for this purpose, the fragment handler will toss
1594packets until ipfrag_low_thresh is reached.
1595
1596ipfrag_time
1597-----------
1598
1599Time in seconds to keep an IP fragment in memory.
1600
1601TCP settings
1602------------
1603
1604tcp_ecn
1605-------
1606
1607This file controls the use of the ECN bit in the IPv4 headers. This is a new
1608feature about Explicit Congestion Notification, but some routers and firewalls
1609block traffic that has this bit set, so it could be necessary to echo 0 to
1610/proc/sys/net/ipv4/tcp_ecn if you want to talk to these sites. For more info
1611you could read RFC2481.
1612
1613tcp_retrans_collapse
1614--------------------
1615
1616Bug-to-bug compatibility with some broken printers. On retransmit, try to send
1617larger packets to work around bugs in certain TCP stacks. Can be turned off by
1618setting it to zero.
1619
1620tcp_keepalive_probes
1621--------------------
1622
1623Number of keep alive probes TCP sends out, until it decides that the
1624connection is broken.
1625
1626tcp_keepalive_time
1627------------------
1628
1629How often TCP sends out keep alive messages, when keep alive is enabled. The
1630default is 2 hours.
1631
1632tcp_syn_retries
1633---------------
1634
1635Number of times initial SYNs for a TCP connection attempt will be
1636retransmitted. Should not be higher than 255. This is only the timeout for
1637outgoing connections, for incoming connections the number of retransmits is
1638defined by tcp_retries1.
1639
1640tcp_sack
1641--------
1642
1643Enable select acknowledgments after RFC2018.
1644
1645tcp_timestamps
1646--------------
1647
1648Enable timestamps as defined in RFC1323.
1649
1650tcp_stdurg
1651----------
1652
1653Enable the strict RFC793 interpretation of the TCP urgent pointer field. The
1654default is to use the BSD compatible interpretation of the urgent pointer
1655pointing to the first byte after the urgent data. The RFC793 interpretation is
1656to have it point to the last byte of urgent data. Enabling this option may
1657lead to interoperability problems. Disabled by default.
1658
1659tcp_syncookies
1660--------------
1661
1662Only valid when the kernel was compiled with CONFIG_SYNCOOKIES. Send out
1663syncookies when the syn backlog queue of a socket overflows. This is to ward
1664off the common 'syn flood attack'. Disabled by default.
1665
1666Note that the concept of a socket backlog is abandoned. This means the peer
1667may not receive reliable error messages from an over loaded server with
1668syncookies enabled.
1669
1670tcp_window_scaling
1671------------------
1672
1673Enable window scaling as defined in RFC1323.
1674
1675tcp_fin_timeout
1676---------------
1677
1678The length of time in seconds it takes to receive a final FIN before the
1679socket is always closed. This is strictly a violation of the TCP
1680specification, but required to prevent denial-of-service attacks.
1681
1682tcp_max_ka_probes
1683-----------------
1684
1685Indicates how many keep alive probes are sent per slow timer run. Should not
1686be set too high to prevent bursts.
1687
1688tcp_max_syn_backlog
1689-------------------
1690
1691Length of the per socket backlog queue. Since Linux 2.2 the backlog specified
1692in listen(2) only specifies the length of the backlog queue of already
1693established sockets. When more connection requests arrive Linux starts to drop
1694packets. When syncookies are enabled the packets are still answered and the
1695maximum queue is effectively ignored.
1696
1697tcp_retries1
1698------------
1699
1700Defines how often an answer to a TCP connection request is retransmitted
1701before giving up.
1702
1703tcp_retries2
1704------------
1705
1706Defines how often a TCP packet is retransmitted before giving up.
1707
1708Interface specific settings
1709---------------------------
1710
1711In the directory /proc/sys/net/ipv4/conf you'll find one subdirectory for each
1712interface the system knows about and one directory calls all. Changes in the
1713all subdirectory affect all interfaces, whereas changes in the other
1714subdirectories affect only one interface. All directories have the same
1715entries:
1716
1717accept_redirects
1718----------------
1719
1720This switch decides if the kernel accepts ICMP redirect messages or not. The
1721default is 'yes' if the kernel is configured for a regular host and 'no' for a
1722router configuration.
1723
1724accept_source_route
1725-------------------
1726
1727Should source routed packages be accepted or declined. The default is
1728dependent on the kernel configuration. It's 'yes' for routers and 'no' for
1729hosts.
1730
1731bootp_relay
1732~~~~~~~~~~~
1733
1734Accept packets with source address 0.b.c.d with destinations not to this host
1735as local ones. It is supposed that a BOOTP relay daemon will catch and forward
1736such packets.
1737
1738The default is 0, since this feature is not implemented yet (kernel version
17392.2.12).
1740
1741forwarding
1742----------
1743
1744Enable or disable IP forwarding on this interface.
1745
1746log_martians
1747------------
1748
1749Log packets with source addresses with no known route to kernel log.
1750
1751mc_forwarding
1752-------------
1753
1754Do multicast routing. The kernel needs to be compiled with CONFIG_MROUTE and a
1755multicast routing daemon is required.
1756
1757proxy_arp
1758---------
1759
1760Does (1) or does not (0) perform proxy ARP.
1761
1762rp_filter
1763---------
1764
1765Integer value determines if a source validation should be made. 1 means yes, 0
1766means no. Disabled by default, but local/broadcast address spoofing is always
1767on.
1768
1769If you set this to 1 on a router that is the only connection for a network to
1770the net, it will prevent spoofing attacks against your internal networks
1771(external addresses can still be spoofed), without the need for additional
1772firewall rules.
1773
1774secure_redirects
1775----------------
1776
1777Accept ICMP redirect messages only for gateways, listed in default gateway
1778list. Enabled by default.
1779
1780shared_media
1781------------
1782
1783If it is not set the kernel does not assume that different subnets on this
1784device can communicate directly. Default setting is 'yes'.
1785
1786send_redirects
1787--------------
1788
1789Determines whether to send ICMP redirects to other hosts.
1790
1791Routing settings
1792----------------
1793
1794The directory /proc/sys/net/ipv4/route contains several file to control
1795routing issues.
1796
1797error_burst and error_cost
1798--------------------------
1799
1800These parameters are used to limit how many ICMP destination unreachable to
1801send from the host in question. ICMP destination unreachable messages are
1802sent when we cannot reach the next hop while trying to transmit a packet.
1803It will also print some error messages to kernel logs if someone is ignoring
1804our ICMP redirects. The higher the error_cost factor is, the fewer
1805destination unreachable and error messages will be let through. Error_burst
1806controls when destination unreachable messages and error messages will be
1807dropped. The default settings limit warning messages to five every second.
1808
1809flush
1810-----
1811
1812Writing to this file results in a flush of the routing cache.
1813
1814gc_elasticity, gc_interval, gc_min_interval_ms, gc_timeout, gc_thresh
1815---------------------------------------------------------------------
1816
1817Values to control the frequency and behavior of the garbage collection
1818algorithm for the routing cache. gc_min_interval is deprecated and replaced
1819by gc_min_interval_ms.
1820
1821
1822max_size
1823--------
1824
1825Maximum size of the routing cache. Old entries will be purged once the cache
1826reached has this size.
1827
1828redirect_load, redirect_number
1829------------------------------
1830
1831Factors which determine if more ICPM redirects should be sent to a specific
1832host. No redirects will be sent once the load limit or the maximum number of
1833redirects has been reached.
1834
1835redirect_silence
1836----------------
1837
1838Timeout for redirects. After this period redirects will be sent again, even if
1839this has been stopped, because the load or number limit has been reached.
1840
1841Network Neighbor handling
1842-------------------------
1843
1844Settings about how to handle connections with direct neighbors (nodes attached
1845to the same link) can be found in the directory /proc/sys/net/ipv4/neigh.
1846
1847As we saw it in the conf directory, there is a default subdirectory which
1848holds the default values, and one directory for each interface. The contents
1849of the directories are identical, with the single exception that the default
1850settings contain additional options to set garbage collection parameters.
1851
1852In the interface directories you'll find the following entries:
1853
1854base_reachable_time, base_reachable_time_ms
1855-------------------------------------------
1856
1857A base value used for computing the random reachable time value as specified
1858in RFC2461.
1859
1860Expression of base_reachable_time, which is deprecated, is in seconds.
1861Expression of base_reachable_time_ms is in milliseconds.
1862
1863retrans_time, retrans_time_ms
1864-----------------------------
1865
1866The time between retransmitted Neighbor Solicitation messages.
1867Used for address resolution and to determine if a neighbor is
1868unreachable.
1869
1870Expression of retrans_time, which is deprecated, is in 1/100 seconds (for
1871IPv4) or in jiffies (for IPv6).
1872Expression of retrans_time_ms is in milliseconds.
1873
1874unres_qlen
1875----------
1876
1877Maximum queue length for a pending arp request - the number of packets which
1878are accepted from other layers while the ARP address is still resolved.
1879
1880anycast_delay
1881-------------
1882
1883Maximum for random delay of answers to neighbor solicitation messages in
1884jiffies (1/100 sec). Not yet implemented (Linux does not have anycast support
1885yet).
1886
1887ucast_solicit
1888-------------
1889
1890Maximum number of retries for unicast solicitation.
1891
1892mcast_solicit
1893-------------
1894
1895Maximum number of retries for multicast solicitation.
1896
1897delay_first_probe_time
1898----------------------
1899
1900Delay for the first time probe if the neighbor is reachable. (see
1901gc_stale_time)
1902
1903locktime
1904--------
1905
1906An ARP/neighbor entry is only replaced with a new one if the old is at least
1907locktime old. This prevents ARP cache thrashing.
1908
1909proxy_delay
1910-----------
1911
1912Maximum time (real time is random [0..proxytime]) before answering to an ARP
1913request for which we have an proxy ARP entry. In some cases, this is used to
1914prevent network flooding.
1915
1916proxy_qlen
1917----------
1918
1919Maximum queue length of the delayed proxy arp timer. (see proxy_delay).
1920
1921app_solicit
1922----------
1923
1924Determines the number of requests to send to the user level ARP daemon. Use 0
1925to turn off.
1926
1927gc_stale_time
1928-------------
1929
1930Determines how often to check for stale ARP entries. After an ARP entry is
1931stale it will be resolved again (which is useful when an IP address migrates
1932to another machine). When ucast_solicit is greater than 0 it first tries to
1933send an ARP packet directly to the known host When that fails and
1934mcast_solicit is greater than 0, an ARP request is broadcasted.
1935
19362.9 Appletalk
1937-------------
1938
1939The /proc/sys/net/appletalk directory holds the Appletalk configuration data
1940when Appletalk is loaded. The configurable parameters are:
1941
1942aarp-expiry-time
1943----------------
1944
1945The amount of time we keep an ARP entry before expiring it. Used to age out
1946old hosts.
1947
1948aarp-resolve-time
1949-----------------
1950
1951The amount of time we will spend trying to resolve an Appletalk address.
1952
1953aarp-retransmit-limit
1954---------------------
1955
1956The number of times we will retransmit a query before giving up.
1957
1958aarp-tick-time
1959--------------
1960
1961Controls the rate at which expires are checked.
1962
1963The directory /proc/net/appletalk holds the list of active Appletalk sockets
1964on a machine.
1965
1966The fields indicate the DDP type, the local address (in network:node format)
1967the remote address, the size of the transmit pending queue, the size of the
1968received queue (bytes waiting for applications to read) the state and the uid
1969owning the socket.
1970
1971/proc/net/atalk_iface lists all the interfaces configured for appletalk.It
1972shows the name of the interface, its Appletalk address, the network range on
1973that address (or network number for phase 1 networks), and the status of the
1974interface.
1975
1976/proc/net/atalk_route lists each known network route. It lists the target
1977(network) that the route leads to, the router (may be directly connected), the
1978route flags, and the device the route is using.
1979
19802.10 IPX
1981--------
1982
1983The IPX protocol has no tunable values in proc/sys/net.
1984
1985The IPX protocol does, however, provide proc/net/ipx. This lists each IPX
1986socket giving the local and remote addresses in Novell format (that is
1987network:node:port). In accordance with the strange Novell tradition,
1988everything but the port is in hex. Not_Connected is displayed for sockets that
1989are not tied to a specific remote address. The Tx and Rx queue sizes indicate
1990the number of bytes pending for transmission and reception. The state
1991indicates the state the socket is in and the uid is the owning uid of the
1992socket.
1993
1994The /proc/net/ipx_interface file lists all IPX interfaces. For each interface
1995it gives the network number, the node number, and indicates if the network is
1996the primary network. It also indicates which device it is bound to (or
1997Internal for internal networks) and the Frame Type if appropriate. Linux
1998supports 802.3, 802.2, 802.2 SNAP and DIX (Blue Book) ethernet framing for
1999IPX.
2000
2001The /proc/net/ipx_route table holds a list of IPX routes. For each route it
2002gives the destination network, the router node (or Directly) and the network
2003address of the router (or Connected) for internal networks.
2004
20052.11 /proc/sys/fs/mqueue - POSIX message queues filesystem
2006----------------------------------------------------------
2007
2008The "mqueue" filesystem provides the necessary kernel features to enable the
2009creation of a user space library that implements the POSIX message queues
2010API (as noted by the MSG tag in the POSIX 1003.1-2001 version of the System
2011Interfaces specification.)
2012
2013The "mqueue" filesystem contains values for determining/setting the amount of
2014resources used by the file system.
2015
2016/proc/sys/fs/mqueue/queues_max is a read/write file for setting/getting the
2017maximum number of message queues allowed on the system.
2018
2019/proc/sys/fs/mqueue/msg_max is a read/write file for setting/getting the
2020maximum number of messages in a queue value. In fact it is the limiting value
2021for another (user) limit which is set in mq_open invocation. This attribute of
2022a queue must be less or equal then msg_max.
2023
2024/proc/sys/fs/mqueue/msgsize_max is a read/write file for setting/getting the
2025maximum message size value (it is every message queue's attribute set during
2026its creation).
2027 1002
20282.12 /proc/<pid>/oom_adj - Adjust the oom-killer score 10033.1 /proc/<pid>/oom_adj - Adjust the oom-killer score
2029------------------------------------------------------ 1004------------------------------------------------------
2030 1005
2031This file can be used to adjust the score used to select which processes 1006This file can be used to adjust the score used to select which processes
@@ -2062,25 +1037,15 @@ The task with the highest badness score is then selected and its children
2062are killed, process itself will be killed in an OOM situation when it does 1037are killed, process itself will be killed in an OOM situation when it does
2063not have children or some of them disabled oom like described above. 1038not have children or some of them disabled oom like described above.
2064 1039
20652.13 /proc/<pid>/oom_score - Display current oom-killer score 10403.2 /proc/<pid>/oom_score - Display current oom-killer score
2066------------------------------------------------------------- 1041-------------------------------------------------------------
2067 1042
2068------------------------------------------------------------------------------
2069This file can be used to check the current score used by the oom-killer is for 1043This file can be used to check the current score used by the oom-killer is for
2070any given <pid>. Use it together with /proc/<pid>/oom_adj to tune which 1044any given <pid>. Use it together with /proc/<pid>/oom_adj to tune which
2071process should be killed in an out-of-memory situation. 1045process should be killed in an out-of-memory situation.
2072 1046
2073------------------------------------------------------------------------------
2074Summary
2075------------------------------------------------------------------------------
2076Certain aspects of kernel behavior can be modified at runtime, without the
2077need to recompile the kernel, or even to reboot the system. The files in the
2078/proc/sys tree can not only be read, but also modified. You can use the echo
2079command to write value into these files, thereby changing the default settings
2080of the kernel.
2081------------------------------------------------------------------------------
2082 1047
20832.14 /proc/<pid>/io - Display the IO accounting fields 10483.3 /proc/<pid>/io - Display the IO accounting fields
2084------------------------------------------------------- 1049-------------------------------------------------------
2085 1050
2086This file contains IO statistics for each running process 1051This file contains IO statistics for each running process
@@ -2182,7 +1147,7 @@ those 64-bit counters, process A could see an intermediate result.
2182More information about this can be found within the taskstats documentation in 1147More information about this can be found within the taskstats documentation in
2183Documentation/accounting. 1148Documentation/accounting.
2184 1149
21852.15 /proc/<pid>/coredump_filter - Core dump filtering settings 11503.4 /proc/<pid>/coredump_filter - Core dump filtering settings
2186--------------------------------------------------------------- 1151---------------------------------------------------------------
2187When a process is dumped, all anonymous memory is written to a core file as 1152When a process is dumped, all anonymous memory is written to a core file as
2188long as the size of the core file isn't limited. But sometimes we don't want 1153long as the size of the core file isn't limited. But sometimes we don't want
@@ -2226,7 +1191,7 @@ For example:
2226 $ echo 0x7 > /proc/self/coredump_filter 1191 $ echo 0x7 > /proc/self/coredump_filter
2227 $ ./some_program 1192 $ ./some_program
2228 1193
22292.16 /proc/<pid>/mountinfo - Information about mounts 11943.5 /proc/<pid>/mountinfo - Information about mounts
2230-------------------------------------------------------- 1195--------------------------------------------------------
2231 1196
2232This file contains lines of the form: 1197This file contains lines of the form:
@@ -2263,30 +1228,3 @@ For more information on mount propagation see:
2263 1228
2264 Documentation/filesystems/sharedsubtree.txt 1229 Documentation/filesystems/sharedsubtree.txt
2265 1230
22662.17 /proc/sys/fs/epoll - Configuration options for the epoll interface
2267--------------------------------------------------------
2268
2269This directory contains configuration options for the epoll(7) interface.
2270
2271max_user_instances
2272------------------
2273
2274This is the maximum number of epoll file descriptors that a single user can
2275have open at a given time. The default value is 128, and should be enough
2276for normal users.
2277
2278max_user_watches
2279----------------
2280
2281Every epoll file descriptor can store a number of files to be monitored
2282for event readiness. Each one of these monitored files constitutes a "watch".
2283This configuration option sets the maximum number of "watches" that are
2284allowed for each user.
2285Each "watch" costs roughly 90 bytes on a 32bit kernel, and roughly 160 bytes
2286on a 64bit one.
2287The current default value for max_user_watches is the 1/32 of the available
2288low memory, divided for the "watch" cost in bytes.
2289
2290
2291------------------------------------------------------------------------------
2292