網頁

2013年2月21日 星期四

/proc目錄下的介紹

/proc 是一個"假的"檔案系統,它豆核心資訊的介面,若你查看檔案內容很多都是size 0 的,但可以用vi去看其中的資訊。大部份/proc之中的大部份檔案是唯檔,但在/proc/sys/之下的檔案內容,是可以修改的( if you are root),一更動並可以立即產生效果的,因此我將分成二個部份來
討論/proc/sys/ 以及 /proc的其他部份。

/proc/sys/
          它記錄了kernel的核心資訊,也允許讀者改變核心的參數,你可以調整你的系統,但必須
          小心,有可能會造成當機的情況。

          若是希望改變檔案的數值,直接用echo或vi改變即可。如下
          echo "123456" > /proc/sys/fs/file-max
          or
          sysctl -w net.ipv4.ip_forwarding="1"
          這樣的修改會在開機後消失哦,如果要長久生效的話你要你的指令新增到
          /etc/rc.d/rc.local 這個檔案中,或是直接在 /etc/sysctl.conf 修改。

    • sysctl.conf為系統資源設定檔
      • 系統在開機時會讀這一個檔案,在檔案中以 ; , # 打頭行是註解,會被忽略。用來表示子目錄的符號 / 在這邊會以 . 取代,所以你可能看到內容如下
        • net.ipv4.ip_forward = 1 
          • 這一行的意思是 /proc/sys/net/ipv4/ip_forwarding的內容是1


/proc/sys/fs/
          file-max
          此檔案的數值表示系統核心所支援最大的file handles,若是你發現出現錯誤訊息說file handle
          不足。那麼你就必須調大這個數值,若你要調為123456,就可以可以使用指令來修改
          echo "123456" > /proc/sys/fs/file-max
          顯示你的/proc/sys/fs/file-max當然就是cat即可啦~~~

          file-nr 
          此檔案之中有3個數值,分別表示的意思
          第1個是已分配的file handles
          第2個是已使用的file handles
          第3個是可以使用的file handles最大數值

          inode-state , inode-nr
          如同file hanlder,核心會自動的分配inode的架構,但是不用時並不能夠釋放這些資源

  /proc/sys/kernel/
          acct
          這個檔案包含3個數值分別是  高水位、低水位、頻率。這個檔案的作用是判斷何時啟用/
          停止file system的紀錄。
          如果file system的使用率低水位,則會停止記錄,若是使用率高於高水位,則開始紀錄;
          那麼頻率是已秒為單位

          ctrl-alt-del
          若這個檔案的內容是0,表示你按ctrl+alt+del時,它會將資料回存,再進行重新開機。
          若不是為0時表示您按ctrl+alt+del,它就會直接重新開機

          domainname , hostname
          這2個檔案分別是NIS的 domain name 以及主機的 host name。不建議修改它,要修改的
          話就是勤勞點,去改 /etc/hosts 再重新開機吧

          osrelease
          儲存核心的版本

          ostype
          是儲存作業系統的種類

           version
           儲存核心產生的時間以及版本

           modprobe
           這個檔案內容顯示 modprobe 的所在位置
           modprode 的補充資料
           insmod 與 modprobe 都是載入 kernel module,不過一般差別於 modprobe 能夠處理 module 
           載入的相依問題。比方你要載入 a module,但是 a module 要求系統先載入 b module 時,
           直接用 insmod 掛入通常都會出現錯誤訊息,不過 modprobe 倒是能夠知道先載入 b module
           後才載入 a module,如此相依性就會滿足。


  /proc/sys/net/
          網路相關設定
          

  /proc/sys/net/ipv4/
          網路相關設定 for IPV4
           icmp_echo_ignore_all
          是否回應 ICMP 的封包;如果是 0 表示關閉,也就是不回應所有 ICMP 的封包。
          在你使用ping的指令就是送出ICMP的封包 ^ ^

          icmp_echo_ignore_broadcasts
          是否回應broadcasting的封包;如果是 0 表示關閉

          ip_autoconfig
          網路設定是否自動載入,載入的來源是透過 RAPR , BOOTP , DHCP 等取得自已的
          IP設定。如果是 0 表示關閉,則這些網路設定在本機上啦。

         ip_conntrack_max
         檔案中的數字表示建立連線追縱 ( ip connect track ) 的最大數量,若是你的主機是
         NAT server 的話建議調大這個數值。

         ip_default_ttl
         TTL ( Time To Live )的預設值,TTL是封包能夠存活所經過位置的個數,default:64,
         也就是幫包若是轉送位置的次數超過64次,則這個封包就會被刪除。

         ip_dynaddr
         允許 socket 重新訂定 IP Address ,這項功能對於動態 IP Address ,如撥接,是必要的
         如果是 0 表示關閉

        ip_forward
        0表示這台機器是 host ; 1 表示這台機器是 router ,當封包的目的地非本機時的處理方
        式。若是 host 則會不理會它 ,若是 router 會將它轉到正確的位址。

        ip_local_port_range
       這個檔案包含2個數值 A 與 B 。 表示本機連到外面所用的 port 的範圍為 A ~ B 之間。
       要注意這個區間要避開本機提供服務的port

       tcp_keepalive_time
       連線的狀況下,多久送出一次仍保持連線的訊息,單位是秒。default:2小時
   
       tcp_fin_timeout
       這檔案的內容是秒數,代表在 socket 結束前用來接收一個結束 FIN 的封包的時間

       tcp_retries1
       定義在放棄前,回應 TCP 連線重新傳遞的請求次數

       tcp_retries2 
       定義在放棄前, TCP 連線重新傳遞的請求次數
       他於tcp_retries1不同哦…一個是回應的一個是連線的。

       tcp_syncookies
       1表示不會回應 "不為syn的tcp新建立的連線封包"

/proc/sys/vm/
       這個目錄是 linux 核心當中虛擬記憶體的設定,核心對於虛擬記憶體的使用,有更更
       聰明以及更有廷展性的用法,一般而言我們統稱為 swap 。以下對於部份的檔案做介
       紹。

       kswapd
       這個檔案是核心對 kswapd 這個常駐程式的控管。裡頭包含三個數值。
       第1個是 kswapd 企圖去釋放一個單獨的目的,所使用 pages 的最大數量,這個值越
       大,表核心可以使用更多的 free pages 。
       第2個是 kswapd 企圖釋放 pages 的最少次數。
       第3個是 kswapd 是圖寫入一個目的程序所需要的 pages 。

       max_map_count
       設定一個程序所擁有的記憶體對應區域,default:65536。

       overcommit_memory
       如果不是0,核心在記值程序所用的記憶體時將不會檢查是否有足夠的記憶體。

       pagetable_cache
       控制 page cache 所使用記憶體的比例。
     
/proc/ 的其他部份
       以下介紹部份 /proc 的架構
       數字部份
       進入 /proc 之後,你會看到許多名稱為數字的目錄,這些數字代表的是 process id
       其中的內容如下所示:
       cmdline 這裡記載執行這個 process id 的完整指令。
       cwd 這個是 process 的工作目錄
       exe  這是這個執行檔實際位置的連結
       fd    這是一個被這個 process 所開啟的檔案,其中 0 是input,1是output,2是錯誤,其
              他為程式另外定義

       map 這個檔案包含這個程式所對應的記憶體使用區以及權限
       stat   這個 process 的狀態資訊,提供給 ps 查詢用。

/proc/ 下非數字的部份
        cmdline  提供給 linux 核心的開機參數
        cpuinfo  cpu的相關資訊
        devices  列出所有的 device 的列表
        filesystems 列出核心所支援的 file system。
        ide         為一個目錄,列出 IDE 的裝置資訊。
        interrupts  列出 IRQ 的資訊
        iomen       列出 I/O 記憶體的對應 ,  Linux 2.4 的功能
        ioports     列出正確註冊,且在使用的 I/O 。
        loadave    這個檔案會記錄工作平均數。
        meminfo   紀錄記憶體資訊,當我們使用 free 指令時就會用到這一個檔案
        modules   紀錄系統會載入的模組 : lsmod
        partitions  包含了硬碟分割的相關資訊
        pci            這是所有PCI的列表以及核心上的設定。
        scsi           這是一個目錄包含了scsi的設定以及驅動程式的相關資訊。當然若是你沒有
                         scsi設備,就不會有這個目錄
        stat           核心與系統方面的統計資訊
        swaps       swap所用的file system以及大小
        sysvipc      這個目錄下包含了3個檔案,msg是message queues的資訊,
                         sem是semaphore Arrays的資訊,shm是SharedMemory Segments的資訊,
                         這3者都是interprocess communication常用的方式,也就是內部process之間溝通
                         的方式,也就是相同 ipcs指令。
         uptime      這個檔案包含了2個數值,一個是系統更新的時間,另一個是idle的程序所花
                         費的時間,這邊圾是秒計算。
         version     包含了核心的資訊以及gcc的版本。

/proc/net 
         arp           包含核心的 arp table ,也就是網路卡卡號與IP address的對應關係。
         atm           這是一個目錄,裡面包含了 ATM(asynchronous transfer mode)的設定以及統計
                          ,通常被ATM networking 與ADSLcard使用。
         dev           內容包含了網呫裝置的資訊,傳送與接收的統計
         ip_conntrack    列出ip連線的追蹤,在NAT server,這個檔案將列出所有client的連線的
                                 狀況。
         ip_mr_cache     列出多重路由的cache
         ip_mr_vif          列出多重虛擬的介面
         ip_tables_names    若是使用iptables,這邊會列出所使用的tables。
         netstat               顯示網路的統計數字
         psched              列出所有排程的參數
         raw                   列出raw device的統計數字
         route                 列出核心的路由列表
         rt_cache            列出目前的路由cache
         snmp                 列出使用中的snmp(simple network management protocol)資訊
         sockstat             列出socket的統計資料。
         tcp                     列出 TCP socket 的資訊。
         tr_rif                  包含token ring RIF的路由列表
         udp                    包含完整的UPD socket 的資訊
         wireless              列出wireless介面的資訊
       


       












沒有留言:

張貼留言