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.txt1111
1 files changed, 28 insertions, 1083 deletions
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt
index a87be42f8211..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,1014 +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
1481
1482netdev_max_backlog
1483------------------
1484
1485Maximum number of packets, queued on the INPUT side, when the interface
1486receives packets faster than kernel can process them.
1487
1488optmem_max
1489----------
1490
1491Maximum ancillary buffer size allowed per socket. Ancillary data is a sequence
1492of struct cmsghdr structures with appended data.
1493
1494/proc/sys/net/unix - Parameters for Unix domain sockets
1495-------------------------------------------------------
1496
1497There are only two files in this subdirectory. They control the delays for
1498deleting and destroying socket descriptors.
1499
15002.8 /proc/sys/net/ipv4 - IPV4 settings
1501--------------------------------------
1502
1503IP version 4 is still the most used protocol in Unix networking. It will be
1504replaced by IP version 6 in the next couple of years, but for the moment it's
1505the de facto standard for the internet and is used in most networking
1506environments around the world. Because of the importance of this protocol,
1507we'll have a deeper look into the subtree controlling the behavior of the IPv4
1508subsystem of the Linux kernel.
1509
1510Let's start with the entries in /proc/sys/net/ipv4.
1511
1512ICMP settings
1513-------------
1514
1515icmp_echo_ignore_all and icmp_echo_ignore_broadcasts
1516----------------------------------------------------
1517
1518Turn on (1) or off (0), if the kernel should ignore all ICMP ECHO requests, or
1519just those to broadcast and multicast addresses.
1520
1521Please note that if you accept ICMP echo requests with a broadcast/multi\-cast
1522destination address your network may be used as an exploder for denial of
1523service packet flooding attacks to other hosts.
1524
1525icmp_destunreach_rate, icmp_echoreply_rate, icmp_paramprob_rate and icmp_timeexeed_rate
1526---------------------------------------------------------------------------------------
1527
1528Sets limits for sending ICMP packets to specific targets. A value of zero
1529disables all limiting. Any positive value sets the maximum package rate in
1530hundredth of a second (on Intel systems).
1531
1532IP settings
1533-----------
1534
1535ip_autoconfig
1536-------------
1537
1538This file contains the number one if the host received its IP configuration by
1539RARP, BOOTP, DHCP or a similar mechanism. Otherwise it is zero.
1540
1541ip_default_ttl
1542--------------
1543
1544TTL (Time To Live) for IPv4 interfaces. This is simply the maximum number of
1545hops a packet may travel.
1546
1547ip_dynaddr
1548----------
1549
1550Enable dynamic socket address rewriting on interface address change. This is
1551useful for dialup interface with changing IP addresses.
1552
1553ip_forward
1554----------
1555
1556Enable or disable forwarding of IP packages between interfaces. Changing this
1557value resets all other parameters to their default values. They differ if the
1558kernel is configured as host or router.
1559
1560ip_local_port_range
1561-------------------
1562
1563Range of ports used by TCP and UDP to choose the local port. Contains two
1564numbers, the first number is the lowest port, the second number the highest
1565local port. Default is 1024-4999. Should be changed to 32768-61000 for
1566high-usage systems.
1567
1568ip_no_pmtu_disc
1569---------------
1570
1571Global switch to turn path MTU discovery off. It can also be set on a per
1572socket basis by the applications or on a per route basis.
1573
1574ip_masq_debug
1575-------------
1576
1577Enable/disable debugging of IP masquerading.
1578
1579IP fragmentation settings
1580-------------------------
1581
1582ipfrag_high_trash and ipfrag_low_trash
1583--------------------------------------
1584
1585Maximum memory used to reassemble IP fragments. When ipfrag_high_thresh bytes
1586of memory is allocated for this purpose, the fragment handler will toss
1587packets until ipfrag_low_thresh is reached.
1588
1589ipfrag_time
1590-----------
1591
1592Time in seconds to keep an IP fragment in memory.
1593
1594TCP settings
1595------------
1596
1597tcp_ecn
1598-------
1599
1600This file controls the use of the ECN bit in the IPv4 headers. This is a new
1601feature about Explicit Congestion Notification, but some routers and firewalls
1602block traffic that has this bit set, so it could be necessary to echo 0 to
1603/proc/sys/net/ipv4/tcp_ecn if you want to talk to these sites. For more info
1604you could read RFC2481.
1605
1606tcp_retrans_collapse
1607--------------------
1608
1609Bug-to-bug compatibility with some broken printers. On retransmit, try to send
1610larger packets to work around bugs in certain TCP stacks. Can be turned off by
1611setting it to zero.
1612
1613tcp_keepalive_probes
1614--------------------
1615
1616Number of keep alive probes TCP sends out, until it decides that the
1617connection is broken.
1618
1619tcp_keepalive_time
1620------------------
1621
1622How often TCP sends out keep alive messages, when keep alive is enabled. The
1623default is 2 hours.
1624
1625tcp_syn_retries
1626---------------
1627
1628Number of times initial SYNs for a TCP connection attempt will be
1629retransmitted. Should not be higher than 255. This is only the timeout for
1630outgoing connections, for incoming connections the number of retransmits is
1631defined by tcp_retries1.
1632
1633tcp_sack
1634--------
1635
1636Enable select acknowledgments after RFC2018.
1637
1638tcp_timestamps
1639--------------
1640
1641Enable timestamps as defined in RFC1323.
1642
1643tcp_stdurg
1644----------
1645
1646Enable the strict RFC793 interpretation of the TCP urgent pointer field. The
1647default is to use the BSD compatible interpretation of the urgent pointer
1648pointing to the first byte after the urgent data. The RFC793 interpretation is
1649to have it point to the last byte of urgent data. Enabling this option may
1650lead to interoperability problems. Disabled by default.
1651
1652tcp_syncookies
1653--------------
1654
1655Only valid when the kernel was compiled with CONFIG_SYNCOOKIES. Send out
1656syncookies when the syn backlog queue of a socket overflows. This is to ward
1657off the common 'syn flood attack'. Disabled by default.
1658
1659Note that the concept of a socket backlog is abandoned. This means the peer
1660may not receive reliable error messages from an over loaded server with
1661syncookies enabled.
1662
1663tcp_window_scaling
1664------------------
1665
1666Enable window scaling as defined in RFC1323.
1667
1668tcp_fin_timeout
1669---------------
1670
1671The length of time in seconds it takes to receive a final FIN before the
1672socket is always closed. This is strictly a violation of the TCP
1673specification, but required to prevent denial-of-service attacks.
1674
1675tcp_max_ka_probes
1676-----------------
1677
1678Indicates how many keep alive probes are sent per slow timer run. Should not
1679be set too high to prevent bursts.
1680
1681tcp_max_syn_backlog
1682-------------------
1683
1684Length of the per socket backlog queue. Since Linux 2.2 the backlog specified
1685in listen(2) only specifies the length of the backlog queue of already
1686established sockets. When more connection requests arrive Linux starts to drop
1687packets. When syncookies are enabled the packets are still answered and the
1688maximum queue is effectively ignored.
1689
1690tcp_retries1
1691------------
1692
1693Defines how often an answer to a TCP connection request is retransmitted
1694before giving up.
1695
1696tcp_retries2
1697------------
1698
1699Defines how often a TCP packet is retransmitted before giving up.
1700
1701Interface specific settings
1702---------------------------
1703
1704In the directory /proc/sys/net/ipv4/conf you'll find one subdirectory for each
1705interface the system knows about and one directory calls all. Changes in the
1706all subdirectory affect all interfaces, whereas changes in the other
1707subdirectories affect only one interface. All directories have the same
1708entries:
1709
1710accept_redirects
1711----------------
1712
1713This switch decides if the kernel accepts ICMP redirect messages or not. The
1714default is 'yes' if the kernel is configured for a regular host and 'no' for a
1715router configuration.
1716
1717accept_source_route
1718-------------------
1719
1720Should source routed packages be accepted or declined. The default is
1721dependent on the kernel configuration. It's 'yes' for routers and 'no' for
1722hosts.
1723
1724bootp_relay
1725~~~~~~~~~~~
1726
1727Accept packets with source address 0.b.c.d with destinations not to this host
1728as local ones. It is supposed that a BOOTP relay daemon will catch and forward
1729such packets.
1730
1731The default is 0, since this feature is not implemented yet (kernel version
17322.2.12).
1733
1734forwarding
1735----------
1736
1737Enable or disable IP forwarding on this interface.
1738
1739log_martians
1740------------
1741
1742Log packets with source addresses with no known route to kernel log.
1743
1744mc_forwarding
1745-------------
1746
1747Do multicast routing. The kernel needs to be compiled with CONFIG_MROUTE and a
1748multicast routing daemon is required.
1749
1750proxy_arp
1751---------
1752
1753Does (1) or does not (0) perform proxy ARP.
1754
1755rp_filter
1756---------
1757
1758Integer value determines if a source validation should be made. 1 means yes, 0
1759means no. Disabled by default, but local/broadcast address spoofing is always
1760on.
1761
1762If you set this to 1 on a router that is the only connection for a network to
1763the net, it will prevent spoofing attacks against your internal networks
1764(external addresses can still be spoofed), without the need for additional
1765firewall rules.
1766
1767secure_redirects
1768----------------
1769
1770Accept ICMP redirect messages only for gateways, listed in default gateway
1771list. Enabled by default.
1772
1773shared_media
1774------------
1775
1776If it is not set the kernel does not assume that different subnets on this
1777device can communicate directly. Default setting is 'yes'.
1778
1779send_redirects
1780--------------
1781
1782Determines whether to send ICMP redirects to other hosts.
1783
1784Routing settings
1785----------------
1786
1787The directory /proc/sys/net/ipv4/route contains several file to control
1788routing issues.
1789
1790error_burst and error_cost
1791--------------------------
1792
1793These parameters are used to limit how many ICMP destination unreachable to
1794send from the host in question. ICMP destination unreachable messages are
1795sent when we cannot reach the next hop while trying to transmit a packet.
1796It will also print some error messages to kernel logs if someone is ignoring
1797our ICMP redirects. The higher the error_cost factor is, the fewer
1798destination unreachable and error messages will be let through. Error_burst
1799controls when destination unreachable messages and error messages will be
1800dropped. The default settings limit warning messages to five every second.
1801
1802flush
1803-----
1804
1805Writing to this file results in a flush of the routing cache.
1806
1807gc_elasticity, gc_interval, gc_min_interval_ms, gc_timeout, gc_thresh
1808---------------------------------------------------------------------
1809
1810Values to control the frequency and behavior of the garbage collection
1811algorithm for the routing cache. gc_min_interval is deprecated and replaced
1812by gc_min_interval_ms.
1813
1814
1815max_size
1816--------
1817
1818Maximum size of the routing cache. Old entries will be purged once the cache
1819reached has this size.
1820
1821redirect_load, redirect_number
1822------------------------------
1823
1824Factors which determine if more ICPM redirects should be sent to a specific
1825host. No redirects will be sent once the load limit or the maximum number of
1826redirects has been reached.
1827
1828redirect_silence
1829----------------
1830
1831Timeout for redirects. After this period redirects will be sent again, even if
1832this has been stopped, because the load or number limit has been reached.
1833
1834Network Neighbor handling
1835-------------------------
1836
1837Settings about how to handle connections with direct neighbors (nodes attached
1838to the same link) can be found in the directory /proc/sys/net/ipv4/neigh.
1839
1840As we saw it in the conf directory, there is a default subdirectory which
1841holds the default values, and one directory for each interface. The contents
1842of the directories are identical, with the single exception that the default
1843settings contain additional options to set garbage collection parameters.
1844
1845In the interface directories you'll find the following entries:
1846
1847base_reachable_time, base_reachable_time_ms
1848-------------------------------------------
1849
1850A base value used for computing the random reachable time value as specified
1851in RFC2461.
1852
1853Expression of base_reachable_time, which is deprecated, is in seconds.
1854Expression of base_reachable_time_ms is in milliseconds.
1855
1856retrans_time, retrans_time_ms
1857-----------------------------
1858
1859The time between retransmitted Neighbor Solicitation messages.
1860Used for address resolution and to determine if a neighbor is
1861unreachable.
1862
1863Expression of retrans_time, which is deprecated, is in 1/100 seconds (for
1864IPv4) or in jiffies (for IPv6).
1865Expression of retrans_time_ms is in milliseconds.
1866
1867unres_qlen
1868----------
1869
1870Maximum queue length for a pending arp request - the number of packets which
1871are accepted from other layers while the ARP address is still resolved.
1872
1873anycast_delay
1874-------------
1875
1876Maximum for random delay of answers to neighbor solicitation messages in
1877jiffies (1/100 sec). Not yet implemented (Linux does not have anycast support
1878yet).
1879
1880ucast_solicit
1881-------------
1882
1883Maximum number of retries for unicast solicitation.
1884
1885mcast_solicit
1886-------------
1887
1888Maximum number of retries for multicast solicitation.
1889
1890delay_first_probe_time
1891----------------------
1892
1893Delay for the first time probe if the neighbor is reachable. (see
1894gc_stale_time)
1895
1896locktime
1897--------
1898
1899An ARP/neighbor entry is only replaced with a new one if the old is at least
1900locktime old. This prevents ARP cache thrashing.
1901
1902proxy_delay
1903-----------
1904
1905Maximum time (real time is random [0..proxytime]) before answering to an ARP
1906request for which we have an proxy ARP entry. In some cases, this is used to
1907prevent network flooding.
1908
1909proxy_qlen
1910----------
1911
1912Maximum queue length of the delayed proxy arp timer. (see proxy_delay).
1913
1914app_solicit
1915----------
1916
1917Determines the number of requests to send to the user level ARP daemon. Use 0
1918to turn off.
1919
1920gc_stale_time
1921-------------
1922
1923Determines how often to check for stale ARP entries. After an ARP entry is
1924stale it will be resolved again (which is useful when an IP address migrates
1925to another machine). When ucast_solicit is greater than 0 it first tries to
1926send an ARP packet directly to the known host When that fails and
1927mcast_solicit is greater than 0, an ARP request is broadcasted.
1928
19292.9 Appletalk
1930-------------
1931
1932The /proc/sys/net/appletalk directory holds the Appletalk configuration data
1933when Appletalk is loaded. The configurable parameters are:
1934
1935aarp-expiry-time
1936----------------
1937
1938The amount of time we keep an ARP entry before expiring it. Used to age out
1939old hosts.
1940
1941aarp-resolve-time
1942-----------------
1943
1944The amount of time we will spend trying to resolve an Appletalk address.
1945
1946aarp-retransmit-limit
1947---------------------
1948
1949The number of times we will retransmit a query before giving up.
1950
1951aarp-tick-time
1952--------------
1953
1954Controls the rate at which expires are checked.
1955
1956The directory /proc/net/appletalk holds the list of active Appletalk sockets
1957on a machine.
1958
1959The fields indicate the DDP type, the local address (in network:node format)
1960the remote address, the size of the transmit pending queue, the size of the
1961received queue (bytes waiting for applications to read) the state and the uid
1962owning the socket.
1963
1964/proc/net/atalk_iface lists all the interfaces configured for appletalk.It
1965shows the name of the interface, its Appletalk address, the network range on
1966that address (or network number for phase 1 networks), and the status of the
1967interface.
1968
1969/proc/net/atalk_route lists each known network route. It lists the target
1970(network) that the route leads to, the router (may be directly connected), the
1971route flags, and the device the route is using.
1972
19732.10 IPX
1974--------
1975
1976The IPX protocol has no tunable values in proc/sys/net.
1977
1978The IPX protocol does, however, provide proc/net/ipx. This lists each IPX
1979socket giving the local and remote addresses in Novell format (that is
1980network:node:port). In accordance with the strange Novell tradition,
1981everything but the port is in hex. Not_Connected is displayed for sockets that
1982are not tied to a specific remote address. The Tx and Rx queue sizes indicate
1983the number of bytes pending for transmission and reception. The state
1984indicates the state the socket is in and the uid is the owning uid of the
1985socket.
1986
1987The /proc/net/ipx_interface file lists all IPX interfaces. For each interface
1988it gives the network number, the node number, and indicates if the network is
1989the primary network. It also indicates which device it is bound to (or
1990Internal for internal networks) and the Frame Type if appropriate. Linux
1991supports 802.3, 802.2, 802.2 SNAP and DIX (Blue Book) ethernet framing for
1992IPX.
1993
1994The /proc/net/ipx_route table holds a list of IPX routes. For each route it
1995gives the destination network, the router node (or Directly) and the network
1996address of the router (or Connected) for internal networks.
1997
19982.11 /proc/sys/fs/mqueue - POSIX message queues filesystem
1999----------------------------------------------------------
2000
2001The "mqueue" filesystem provides the necessary kernel features to enable the
2002creation of a user space library that implements the POSIX message queues
2003API (as noted by the MSG tag in the POSIX 1003.1-2001 version of the System
2004Interfaces specification.)
2005
2006The "mqueue" filesystem contains values for determining/setting the amount of
2007resources used by the file system.
2008
2009/proc/sys/fs/mqueue/queues_max is a read/write file for setting/getting the
2010maximum number of message queues allowed on the system.
2011
2012/proc/sys/fs/mqueue/msg_max is a read/write file for setting/getting the
2013maximum number of messages in a queue value. In fact it is the limiting value
2014for another (user) limit which is set in mq_open invocation. This attribute of
2015a queue must be less or equal then msg_max.
2016
2017/proc/sys/fs/mqueue/msgsize_max is a read/write file for setting/getting the
2018maximum message size value (it is every message queue's attribute set during
2019its creation).
2020 1002
20212.12 /proc/<pid>/oom_adj - Adjust the oom-killer score 10033.1 /proc/<pid>/oom_adj - Adjust the oom-killer score
2022------------------------------------------------------ 1004------------------------------------------------------
2023 1005
2024This 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
@@ -2055,25 +1037,15 @@ The task with the highest badness score is then selected and its children
2055are 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
2056not have children or some of them disabled oom like described above. 1038not have children or some of them disabled oom like described above.
2057 1039
20582.13 /proc/<pid>/oom_score - Display current oom-killer score 10403.2 /proc/<pid>/oom_score - Display current oom-killer score
2059------------------------------------------------------------- 1041-------------------------------------------------------------
2060 1042
2061------------------------------------------------------------------------------
2062This 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
2063any 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
2064process should be killed in an out-of-memory situation. 1045process should be killed in an out-of-memory situation.
2065 1046
2066------------------------------------------------------------------------------
2067Summary
2068------------------------------------------------------------------------------
2069Certain aspects of kernel behavior can be modified at runtime, without the
2070need to recompile the kernel, or even to reboot the system. The files in the
2071/proc/sys tree can not only be read, but also modified. You can use the echo
2072command to write value into these files, thereby changing the default settings
2073of the kernel.
2074------------------------------------------------------------------------------
2075 1047
20762.14 /proc/<pid>/io - Display the IO accounting fields 10483.3 /proc/<pid>/io - Display the IO accounting fields
2077------------------------------------------------------- 1049-------------------------------------------------------
2078 1050
2079This file contains IO statistics for each running process 1051This file contains IO statistics for each running process
@@ -2175,7 +1147,7 @@ those 64-bit counters, process A could see an intermediate result.
2175More information about this can be found within the taskstats documentation in 1147More information about this can be found within the taskstats documentation in
2176Documentation/accounting. 1148Documentation/accounting.
2177 1149
21782.15 /proc/<pid>/coredump_filter - Core dump filtering settings 11503.4 /proc/<pid>/coredump_filter - Core dump filtering settings
2179--------------------------------------------------------------- 1151---------------------------------------------------------------
2180When 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
2181long 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
@@ -2219,7 +1191,7 @@ For example:
2219 $ echo 0x7 > /proc/self/coredump_filter 1191 $ echo 0x7 > /proc/self/coredump_filter
2220 $ ./some_program 1192 $ ./some_program
2221 1193
22222.16 /proc/<pid>/mountinfo - Information about mounts 11943.5 /proc/<pid>/mountinfo - Information about mounts
2223-------------------------------------------------------- 1195--------------------------------------------------------
2224 1196
2225This file contains lines of the form: 1197This file contains lines of the form:
@@ -2256,30 +1228,3 @@ For more information on mount propagation see:
2256 1228
2257 Documentation/filesystems/sharedsubtree.txt 1229 Documentation/filesystems/sharedsubtree.txt
2258 1230
22592.17 /proc/sys/fs/epoll - Configuration options for the epoll interface
2260--------------------------------------------------------
2261
2262This directory contains configuration options for the epoll(7) interface.
2263
2264max_user_instances
2265------------------
2266
2267This is the maximum number of epoll file descriptors that a single user can
2268have open at a given time. The default value is 128, and should be enough
2269for normal users.
2270
2271max_user_watches
2272----------------
2273
2274Every epoll file descriptor can store a number of files to be monitored
2275for event readiness. Each one of these monitored files constitutes a "watch".
2276This configuration option sets the maximum number of "watches" that are
2277allowed for each user.
2278Each "watch" costs roughly 90 bytes on a 32bit kernel, and roughly 160 bytes
2279on a 64bit one.
2280The current default value for max_user_watches is the 1/32 of the available
2281low memory, divided for the "watch" cost in bytes.
2282
2283
2284------------------------------------------------------------------------------
2285