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 ,如需轉載請自行聯系原作者