天天看點

Linux核心子產品管理

 Linux核心子產品管理

目錄:

核心子產品路徑

檢視已加載的核心

加載與解除安裝核心子產品

修改核心參數

Linux核心采用的是子產品化技術,這樣的設計使得系統核心可以保持最小化,同時確定了核心的可擴充性與可維護性,子產品化設計允許我們在需要時才将子產品加載至核心,實作動态核心調整。本文重點關注方法與思路,具體實作可以參考kernel-doc文檔。

2.9.1 核心子產品存放位置

2.9.2 檢視已加載核心子產品

lsmod指令用來顯示目前Linux核心子產品狀态,不是使用任何參數會顯示目前已經加載的所有核心子產品。輸出的三列資訊分别為子產品名稱、占用記憶體大小、是否在被使用,如果第三列為0則該子產品可以随時解除安裝,非0則無法執行modprobe删除子產品。

[root@centos6 ~]# lsmod 

Module                  Size  Used by 

bridge                 79950   0 

stp                     2173   1 bridge 

llc                     5642    2 bridge,stp 

fuse                   66891   2 

autofs4                27212    3 

sunrpc                263516   1 

ipt_REJECT              2351    2 

nf_conntrack_ipv4       9506     2 

nf_defrag_ipv4          1483     1 nf_conntrack_ipv4 

iptable_filter           2793    1 

ip_tables              17831    1 iptable_filter 

(部分輸出省略) 

2.9.3 加載與解除安裝核心子產品

modprobe指令可以動态加載與解除安裝核心子產品:

[root@centos6 ~]# modprobe ip_vs     #動态加載ip_vs子產品 

[root@centos7 ~]# lsmod |grep ip_vs  #檢視子產品是否加載成功 

[root@centos7 ~]# modprobe -r ip_vs  #動态解除安裝ip_vs子產品 

modinfo指令可以檢視核心子產品資訊:

[root@centos7 ~]# modinfo ip_vs 

filename:       /lib/modules/2.6.32-279.el6.x86_64/kernel/net/netfilter/ipvs/ip_vs.ko 

license:        GPL 

srcversion:     01386EABC060B63920E181B 

depends:        ipv6,libcrc32c 

vermagic:       2.6.32-279.el6.x86_64 SMP mod_unload modversions 

通過上述modprobe方式加載的核心子產品僅在目前有效,計算機重新開機後并不會再次加載該子產品,如果希望系統開機自動挂載核心子產品則需要将modprobe指令寫入/etc/rc.sysinit檔案中:

[root@centos7 ~]# echo “modprobe ip_vs” >> /etc/rc.sysinit 

當核心子產品不再需要時可以通過将/etc/rc.sysinit檔案中的對應modprobe指令删除,但需要重新開機計算機才生效。此時,可以通過modprobe -r指令來立刻删除核心子產品:

[root@centos6 ~]# modprobe -r ip_vs 

2.9.4 修改核心參數

1.       臨時調整核心參數

Linux核心參數随着系統的啟動會被寫入記憶體中,我們可以直接修改/proc目錄下的大量檔案來調整核心參數,并且這種調整是立刻生效的,下面我們來看幾個執行個體。

開啟核心路由轉發功能(通過0或1設定開關):

[root@centos6 ~]# echo "1" > /proc/sys/net/ipv4/ip_forward 

開啟核心路由轉發功能:

[root@centos6 ~]# echo "1" > echo "1" >t /proc/sys/net/ipv4/icmp_echo_ignore_all 

調整所有程序總共可以打開的檔案數量(當大量的使用者通路網站資源時可能會因該數字過小而導緻錯誤):

[root@centos6 ~]# echo "108248" >/proc/sys/fs/file-max 

2.       永久調整核心參數

可以通過man proc可以獲得大量關于核心參數的描述資訊。但以上通過直接修改/proc相關檔案的方式在系統重新開機後将不再有效,如果希望設定參數并永久生效可以修改/etc/sysctl.conf檔案,檔案格式為選項=值,我們通過vim修改該檔案将前面3個案例參數設定為永久有效:

[root@centos6 ~]# vim /etc/sysctl.conf 

net.ipv4.ip_forward = 1 

net.ipv4.icmp_echo_ignore_all = 1 

fs.file-max = 108248 

注意,通過sysctl.conf檔案修改的核心參數不會立刻生效,修改完成後使用sysctl -p指令可以使這些設定立刻生效。

本文轉自丁丁曆險51CTO部落格,原文連結:http://blog.51cto.com/manual/1130321 ,如需轉載請自行聯系原作者

繼續閱讀