2.9 內核模塊

2.9 內核模塊

Linux採用的是模塊化技術,這樣的設計使得系統內核可以保持最小化,同時確保了內核的可擴展性與可維護性,模塊化設計允許我們在需要時纔將模塊加載至內核,實現動態內核的調整。

 

2.9.1 內核模塊存放位置

Linux內核模塊文件的命名方式通常爲<模塊名稱.ko>Centos 6.3系統的內核模塊被集中存放在/lib/modules/`uname -r`//lib/modules/2.6.32-279.el6.x86_64)目錄下。

 

2.9.2 查看已加載內核模塊

lsmod命令用來顯示當前Linux內核模塊狀態,不使用任何參數會顯示當前已經加載的所有的內核模塊。輸出的三列信息分別爲模塊名稱、佔用內存大小、是否在被使用,如果第三列爲0,則該模塊可以隨時卸載,非0則無法執行modprobe刪除模塊。

[root@instructor ~]# lsmod 
Module                  Size  Used by
lp                      9338  0 
nfsd                  305863  13 
lockd                  74270  1   nfsd
nfs_acl                  2647  1   nfsd
auth_rpcgss             44895  1   nfsd
sunrpc                263516  17  nfsd,lockd,nfs_acl,auth_rpcgss

 

2.9.3 加載與卸載內核模塊

modprobe命令可以動態加載與卸載內核模塊:

[root@instructor ~]# modprobe ip_vs	    	   動態加載ip_vs模塊
[root@instructor ~]# lsmod |grep ip_vs	    	查看模塊是否加載成功
ip_vs             115490  0 
libcrc32c            1246  1 ip_vs
ipv6              322541  123 ip_vs,cnic,ip6t_REJECT,nf_conntrack_ipv6,nf_defrag_ipv6
[root@instructor ~]# modprobe -r ip_vs	    	動態卸載ip_vs模塊

modinfo命令可以查看內核模塊信息:

[root@instructor ~]# 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文件中,或者通過修改/etc/modprobe.d/目錄下的相關配置文件實現:

[root@instructor ~]# echo "modprobe ip_vs" >> /etc/rc.sysinit

當內核模塊不再需要時,可以通過將/etc/rc.sysinit文件中的對應的modprobe命令刪除,但需要重啓計算機才生效。此時,可以通過modprobe -r命令立即刪除內核模塊。

 

2.9.4 修改內核參數

1. 臨時調整內核參數

Linux內核參數隨着系統的啓動會被寫入到內存中,可以直接修改/proc目錄下的大量文件來調整內核參數,並且這種調整是立刻生效的。

開啓內核路由轉發功能(通過01設置開關):

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

禁止所有的icmp回包(禁止其它主機ping本機)功能:

[root@instructor proc]# echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

調整所有的進程可以打開文件總數量(當大量的用戶訪問網站資源時,可能會因該數字過小 而導致錯誤):

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

 

2. 永久調整內核參數

通過man proc可以獲得大量關於內核參數的描述信息。設置參數永久生效,可以修改/etc/sysctl.conf文件,文件格式爲“選項=值”。

[root@instructor ~]# vim /etc/sysctl.conf 
net.ipv4.ip_forward = 1
net.ipv4.icmp_echo_ignore_all = 1
fs.file-max = 108248

注意,通過sysctl.conf文件修改的內核參數不會立刻生效,修改完成後,使用sysctl -p命令可以使這些設置立刻生效。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章