linux proc 檔案系統下 entry 的解釋(轉)

post0發表於2007-08-11
linux proc 檔案系統下 entry 的解釋(轉)[@more@]

proc檔案系統是一個偽檔案系統,它只存在記憶體當中,而不佔用外存空間。它以檔案系統的方式為訪問系統核心資料的操作提供介面。使用者和應用程式可以透過 proc得到系統的資訊,並可以改變核心的某些引數。由於系統的資訊,如程式,是動態改變的,所以使用者或應用程式讀取proc檔案時,proc檔案系統是動態從系統核心讀出所需資訊並提交的。它的目錄結構如下:

目錄名稱 目錄內容

apm 高階電源管理資訊

cmdline 核心命令列

Cpuinfo 關於Cpu資訊

Devices 可以用到的裝置(塊裝置/字元裝置)

Dma 使用的DMA通道

Filesystems 支援的檔案系統

Interrupts 中斷的使用

Ioports I/O埠的使用

Kcore 核心核心印象

Kmsg 核心訊息

Ksyms 核心符號表

Loadavg 負載均衡

Locks 核心鎖

Meminfo 記憶體資訊

Misc 雜項

Modules 載入模組列表

Mounts 載入的檔案系統

Partitions 系統識別的分割槽表

Rtc 實時時鐘

Slabinfo Slab池資訊

Stat 全面統計狀態表

Swaps 對換空間的利用情況

Version 核心版本

Uptime 系統正常執行時間

並不是所有這些目錄在你的系統中都有,這取決於你的核心配置和裝載的模組。另外,在/proc下還有三個很重要的目錄:net,scsi和sys。Sys 目錄是可寫的,可以透過它來訪問或修改核心的引數(見下一部分),而net和scsi則依賴於核心配置。例如,如果系統不支援scsi,則scsi目錄不存在。

除了以上介紹的這些,還有的是一些以數字命名的目錄,它們是程式目錄。系統中當前執行的每一個程式都有對應的一個目錄在/proc下,以程式的PID號為目錄名,它們是讀取程式資訊的介面。而self目錄則是讀取程式本身的資訊介面,是一個link。Proc檔案系統的名字就是由之而起。程式目錄的結構如下:

目錄名稱 目錄內容

Cmdline 命令列引數

Environ 環境變數值

Fd 一個包含所有檔案描述符的目錄

Mem 程式的記憶體被利用情況

Stat 程式狀態

Status 程式當前狀態,以可讀的方式顯示出來

Cwd 當前工作目錄的連結

Exe 指向該程式的執行命令檔案

Maps 記憶體映象

Statm 程式記憶體狀態資訊

Root 連結此程式的root目錄

使用者如果要檢視系統資訊,可以用cat命令。例如:

# cat /proc/interrupts

CPU0

0: 8728810 XT-PIC timer

1: 895 XT-PIC keyboard

2: 0 XT-PIC cascade

3: 531695 XT-PIC aha152x

4: 2014133 XT-PIC serial

5: 44401 XT-PIC pcnet_cs

8: 2 XT-PIC rtc

11: 8 XT-PIC i82365

12: 182918 XT-PIC Mouse

13: 1 XT-PIC fpu PS/2

14: 1232265 XT-PIC ide0

15: 7 XT-PIC ide1

NMI: 0

使用者還可以實現修改核心引數。在/proc檔案系統中有一個有趣的目錄:/proc/sys。它不僅提供了核心資訊,而且可以透過它修改核心引數,來最佳化你的系統。但是你必須很小心,因為可能會造成系統崩潰。最好是先找一臺無關緊要的機子,除錯成功後再應用到你的系統上。

要改變核心的引數,只要用vi編輯或echo引數重定向到檔案中即可。下面有一個例子:

# cat /proc/sys/fs/file-max

4096

# echo 8192 > /proc/sys/fs/file-max

# cat /proc/sys/fs/file-max

8192

如果你最佳化了引數,則可以把它們寫成新增到檔案rc.local中,使它在系統啟動時自動完成修改。

/proc檔案系統中網路引數

在/proc/sys/net/ipv4/目錄下,包含的是和tcp/ip協議相關的各種引數,下面我們就對這些網路引數加以詳細的說明。

ip_forward 引數型別:BOOLEAN

0 - 關閉(預設值)

not 0 - 開啟ip轉發

在網路本地介面之間轉發資料包。該引數非常特殊,對該引數的修改將導致其它所有相關配置引數恢復其預設值(對於主機參閱RFC1122,對於路由器參見RFC1812)

ip_default_ttl 引數型別:INTEGER

預設值為 64 。表示IP資料包的Time To Live值。

ip_no_pmtu_disc 引數型別:BOOLEAN

關閉路徑MTU探測,預設值為FALSE

ipfrag_high_thresh 引數型別:整型

用來組裝分段的IP包的最大記憶體量。當ipfrag_high_thresh數量的記憶體被分配來用來組裝IP包,則IP分片處理器將丟棄資料包直到ipfrag_low_thresh數量的記憶體被用來組裝IP包。

ipfrag_low_thresh 引數型別:整型

參見ipfrag_high_thresh。

ipfrag_time 引數型別:整型

儲存一個IP分片在記憶體中的時間。

inet_peer_threshold 引數型別:整型

INET對端儲存器某個合適值,當超過該閥值條目將被丟棄。該閥值同樣決定生存時間以及廢物收集透過的時間間隔。條目越多﹐存活期越低﹐GC 間隔越短

inet_peer_minttl 引數型別:整型

條目的最低存活期。在重組端必須要有足夠的碎片(fragment)存活期。這個最低存活期必須保證緩衝池容積是否少於 inet_peer_threshold。該值以 jiffies為單位測量。

inet_peer_maxttl 引數型別:整型

條目的最大存活期。在此期限到達之後﹐如果緩衝池沒有耗盡壓力的話(例如﹐緩衝池中的條目數目非常少)﹐不使用的條目將會超時。該值以 jiffies為單位測量。

inet_peer_gc_mintime 引數型別:整型

廢物收集(GC)透過的最短間隔。這個間隔會影響到緩衝池中記憶體的高壓力。 該值以 jiffies為單位測量。

inet_peer_gc_maxtime 引數型別:整型

廢物收集(GC)透過的最大間隔,這個間隔會影響到緩衝池中記憶體的低壓力。 該值以 jiffies為單位測量。

tcp_syn_retries 引數型別:整型

對於一個新建連線,核心要傳送多少個 SYN 連線請求才決定放棄。不應該大於255,預設值是5,對應於180秒左右。

tcp_synack_retries 引數型別:整型

對於遠端的連線請求SYN,核心會傳送SYN + ACK資料包,以確認收到上一個 SYN連線請求包。這是所謂的三次握手( threeway handshake)機制的第二個步驟。這裡決定核心在放棄連線之前所送出的 SYN+ACK 數目。

tcp_keepalive_time 引數型別:整型

當keepalive開啟的情況下,TCP傳送keepalive訊息的頻率,預設值是2個小時。

tcp_keepalive_probes 引數型別:整型

TCP傳送keepalive探測以確定該連線已經斷開的次數,預設值是9。

tcp_keepalive_interval 引數型別:整型

探測訊息傳送的頻率,乘以tcp_keepalive_probes就得到對於從開始探測以來沒有響應的連線殺除的時間。預設值為75秒,也就是沒有活動的連線將在大約11分鐘以後將被丟棄。

tcp_retries1 引數型別:整型

當出現可疑情況而必須向網路層報告這個可疑狀況之前﹐需要進行多少次重試。最低的 RFC 數值是 3 ﹐這也是預設值﹐根據RTO的值大約在3秒 - 8分鐘之間。

tcp_retries2 引數型別:整型

在丟棄啟用的TCP連線之前﹐需要進行多少次重試。RFC1122規定,該值必須大於100秒。預設值為15,根據RTO的值來決定,相當於13-30分鐘,

tcp_orphan_retries 引數型別:整型

在近端丟棄TCP連線之前﹐要進行多少次重試。預設值是 7 個﹐相當於 50秒 - 16分鐘﹐視 RTO 而定。如果您的系統是負載很大的web伺服器﹐那麼也許需要降低該值﹐這類 sockets 可能會耗費大量的資源。另外參的考 tcp_max_orphans 。

tcp_fin_timeout 引數型別:整型

對於本端斷開的socket連線,TCP保持在FIN-WAIT-2狀態的時間。對方可能會斷開連線或一直不結束連線或不可預料的程式死亡。預設值為 60 秒。過去在2.2版本的核心中是 180 秒。您可以設定該值﹐但需要注意﹐如果您的機器為負載很重的web伺服器﹐您可能要冒記憶體被大量無效資料包填滿的風險﹐FIN-WAIT-2 sockets 的危險性低於 FIN-WAIT-1 ﹐因為它們最多隻吃 1.5K 的記憶體﹐但是它們存在時間更長。另外參考 tcp_max_orphans。

tcp_max_tw_buckets 引數型別:整型

系統在同時所處理的最大timewait sockets 數目。如果超過此數的話﹐time-wait socket 會被立即砍除並且顯示警告資訊。之所以要設定這個限制﹐純粹為了抵禦那些簡單的 DoS 攻擊﹐千萬不要人為的降低這個限制﹐不過﹐如果網路條件需要比預設值更多﹐則可以提高它(或許還要增加記憶體)。

tcp_tw_recycle 引數型別:布林

開啟快速 TIME-WAIT sockets 回收。預設值是1。除非得到技術專家的建議或要求﹐請不要隨意修改這個值。

tcp_max_orphans 引數型別:整型

系統所能處理不屬於任何程式的TCP sockets最大數量。假如超過這個數量﹐那麼不屬於任何程式的連線會被立即reset,並同時顯示警告資訊。之所以要設定這個限制﹐純粹為了抵禦那些簡單的 DoS 攻擊﹐千萬不要依賴這個或是人為的降低這個限制

tcp_abort_on_overflow 引數型別:布林

當守護程式太忙而不能接受新的連線,就象對方傳送reset訊息,預設值是false。這意味著當溢位的原因是因為一個偶然的猝發,那麼連線將恢復狀態。只有在你確信守護程式真的不能完成連線請求時才開啟該選項,該選項會影響客戶的使用。

tcp_syncookies 引數型別:整型

只有在核心編譯時選擇了CONFIG_SYNCOOKIES時才會發生作用。當出現syn等候佇列出現溢位時象對方傳送syncookies。目的是為了防止syn flood攻擊。預設值是false。

注意:該選項千萬不能用於那些沒有收到攻擊的高負載伺服器,如果在日誌中出現synflood訊息,但是調查發現沒有收到synflood攻擊,而是合法使用者的連線負載過高的原因,你應該調整其它引數來提高伺服器效能。參考: tcp_max_syn_backlog, tcp_synack_retries, tcp_abort_on_overflow.

syncookie嚴重的違背TCP協議,不允許使用TCP擴充套件,可能對某些服務導致嚴重的效能影響(如SMTP轉發)。

tcp_stdurg 引數型別:整型

使用 TCP urg pointer 欄位中的主機請求解釋功能。大部份的主機都使用老舊的 BSD解釋,因此如果您在 Linux 開啟它﹐或會導致不能和它們正確溝通。預設值為為﹕FALSE

tcp_max_syn_backlog 引數型別:整型

對於那些依然還未獲得客戶端確認的連線請求﹐需要儲存在佇列中最大數目。對於超過 128Mb 記憶體的系統﹐預設值是 1024 ﹐低於 128Mb 的則為 128。如果伺服器經常出現過載﹐可以嘗試增加這個數字。警告﹗假如您將此值設為大於 1024﹐最好修改 include/net/tcp.h 裡面的 TCP_SYNQ_HSIZE ﹐以保持 TCP_SYNQ_HSIZE*16 0)或者bytes-bytes/2^(-tcp_adv_win_scale)(如果tcp_adv_win_scale 128Mb 32768-61000

0)則系統將忽略所有傳送給自己的ICMP ECHO請求或那些廣播地址的請求。

icmp_destunreach_rate - 整數

icmp_paramprob_rate - 整數

icmp_timeexceed_rate - 整數

icmp_echoreply_rate - 整數(not enabled per default)

限制發向特定目標的ICMP資料包的最大速率。0表示沒有任何限制,否則表示jiffies資料單位中允許傳送的個數。

icmp_ignore_bogus_error_responses - 布林型別

某些路由器違背RFC1122標準,其對廣播幀傳送偽造的響應來應答。這種違背行為通常會被以告警的方式記錄在系統日誌中。如果該選項設定為True,核心不會記錄這種警告資訊。預設值為False。

(1) Jiffie: 核心使用的內部時間單位,在i386系統上大小為1/100s,在Alpha中為1/1024S。在/usr/include/asm/param.h中的HZ定義有特定系統的值。

conf/interface/*:

conf/all/*是特定的,用來修改所有介面的設定,is special and changes the settings for all interfaces.

Change special settings per interface.

log_martians - 布林型別

記錄帶有不允許的地址的資料包到核心日誌中。

accept_redirects - 布林型別

收發接收ICMP重定向訊息。對於主機來說預設為True,對於用作路由器時預設值為False。

forwarding - 布林型別

在該介面開啟轉發功能

mc_forwarding - 布林型別

是否進行多播路由。只有核心編譯有CONFIG_MROUTE並且有路由服務程式在執行該引數才有效。

proxy_arp - 布林型別

開啟proxy arp功能。

shared_media - 布林型別

傳送(路由器)或接收(主機) RFC1620 共享媒體重定向。覆蓋ip_secure_redirects的值。預設為True。

secure_redirects - 布林型別

僅僅接收發給預設閘道器列表中閘道器的ICMP重定向訊息,預設值是TRUE。

send_redirects - 布林型別

如果是router,傳送重定向訊息,預設值是TRUE

bootp_relay - 布林型別

接收源地址為0.b.c.d,目的地址不是本機的資料包。用來支援BOOTP轉發服務程式,該程式將捕獲並轉發該包。預設為False,目前還沒有實現。

accept_source_route - 布林型別

接收帶有SRR選項的資料包。對於主機來說預設為False,對於用作路由器時預設值為True。

rp_filter 引數型別

1 - 透過反向路徑回溯進行源地址驗證(在RFC1812中定義)。對於單穴主機和stub網路路由器推薦使用該選項。

0 - 不透過反向路徑回溯進行源地址驗證。

預設值為0。某些釋出在啟動時自動將其開啟。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-945121/,如需轉載,請註明出處,否則將追究法律責任。

相關文章