第七周

1甚纲、列舉常見的內(nèi)核參數(shù)以及參數(shù)的意義

1)如何查看當(dāng)前系統(tǒng)的所有內(nèi)核參數(shù)

sysctl -a?當(dāng)前系統(tǒng)內(nèi)核參數(shù)

2)如何修改內(nèi)核參數(shù)

echo 1 > /proc/sys/net/ipv4/ip_forward ;sysctl -p臨時(shí)修改生效双絮,重啟系統(tǒng)后失效

echo "/proc/sys/net/ipv4/ip_forward = 1 >>/etc/sysctl.conf"永久生效

3)常用參數(shù)說明:

# 內(nèi)核panic時(shí),1秒后自動(dòng)重啟

kernel.panic = 1

# 允許更多的PIDs (減少滾動(dòng)翻轉(zhuǎn)問題); may break some programs 32768

kernel.pid_max = 32768

# 內(nèi)核所允許的最大共享內(nèi)存段的大忻弧(bytes)

kernel.shmmax = 4294967296

# 在任何給定時(shí)刻,系統(tǒng)上可以使用的共享內(nèi)存的總量(pages)

kernel.shmall = 1073741824

# 設(shè)定程序core時(shí)生成的文件名格式

kernel.core_pattern = core_%e

# 當(dāng)發(fā)生oom時(shí)址芯,自動(dòng)轉(zhuǎn)換為panic

vm.panic_on_oom = 1

# 表示強(qiáng)制Linux VM最低保留多少空閑內(nèi)存(Kbytes)

vm.min_free_kbytes = 1048576

# 該值高于100喳坠,則將導(dǎo)致內(nèi)核傾向于回收directory和inode cache

vm.vfs_cache_pressure = 250

# 表示系統(tǒng)進(jìn)行交換行為的程度杈曲,數(shù)值(0-100)越高,越可能發(fā)生磁盤交換

vm.swappiness = 0

# 僅用10%做為系統(tǒng)cache

vm.dirty_ratio = 10

# 增加系統(tǒng)文件描述符限制 2^20-1

fs.file-max = 1048575

# 網(wǎng)絡(luò)層優(yōu)化

# listen()的默認(rèn)參數(shù),掛起請求的最大數(shù)量魔慷,默認(rèn)128

net.core.somaxconn = 1024

# 增加Linux自動(dòng)調(diào)整TCP緩沖區(qū)限制

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

# 進(jìn)入包的最大設(shè)備隊(duì)列.默認(rèn)是300

net.core.netdev_max_backlog = 2000

# 開啟SYN洪水攻擊保護(hù)

net.ipv4.tcp_syncookies = 1

# 開啟并記錄欺騙只锭,源路由和重定向包

net.ipv4.conf.all.log_martians = 1

net.ipv4.conf.default.log_martians = 1

# 處理無源路由的包

net.ipv4.conf.all.accept_source_route = 0

net.ipv4.conf.default.accept_source_route = 0

# 開啟反向路徑過濾

net.ipv4.conf.all.rp_filter = 1

net.ipv4.conf.default.rp_filter = 1

# 確保無人能修改路由表

net.ipv4.conf.all.accept_redirects = 0

net.ipv4.conf.default.accept_redirects = 0

net.ipv4.conf.all.secure_redirects = 0

net.ipv4.conf.default.secure_redirects = 0

# 增加系統(tǒng)IP端口限制

net.ipv4.ip_local_port_range = 9000 65533

# TTL

net.ipv4.ip_default_ttl = 64

# 增加TCP最大緩沖區(qū)大小

net.ipv4.tcp_rmem = 4096 87380 8388608

net.ipv4.tcp_wmem = 4096 32768 8388608

# Tcp自動(dòng)窗口

net.ipv4.tcp_window_scaling = 1

# 進(jìn)入SYN包的最大請求隊(duì)列.默認(rèn)1024

net.ipv4.tcp_max_syn_backlog = 8192

# 打開TIME-WAIT套接字重用功能,對于存在大量連接的Web服務(wù)器非常有效院尔。

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_tw_reuse = 0?

# 表示是否啟用以一種比超時(shí)重發(fā)更精確的方法(請參閱 RFC 1323)來啟用對 RTT 的計(jì)算蜻展;為了實(shí)現(xiàn)更好的性能應(yīng)該啟用這個(gè)選項(xiàng)

net.ipv4.tcp_timestamps = 0

# 表示本機(jī)向外發(fā)起TCP SYN連接超時(shí)重傳的次數(shù)

net.ipv4.tcp_syn_retries = 2

net.ipv4.tcp_synack_retries = 2

# 減少處于FIN-WAIT-2連接狀態(tài)的時(shí)間,使系統(tǒng)可以處理更多的連接邀摆。

net.ipv4.tcp_fin_timeout = 10?

# 減少TCP KeepAlive連接偵測的時(shí)間纵顾,使系統(tǒng)可以處理更多的連接。

# 如果某個(gè)TCP連接在idle 300秒后,內(nèi)核才發(fā)起probe.如果probe 2次(每次2秒)不成功,內(nèi)核才徹底放棄,認(rèn)為該連接已失效.

net.ipv4.tcp_keepalive_time = 300

net.ipv4.tcp_keepalive_probes = 2

net.ipv4.tcp_keepalive_intvl = 2

# 系統(tǒng)所能處理不屬于任何進(jìn)程的TCP sockets最大數(shù)量

net.ipv4.tcp_max_orphans = 262144

# 系統(tǒng)同時(shí)保持TIME_WAIT套接字的最大數(shù)量栋盹,如果超過這個(gè)數(shù)字施逾,TIME_WAIT套接字將立刻被清除并打印警告信息。

net.ipv4.tcp_max_tw_buckets = 20000

# arp_table的緩存限制優(yōu)化

net.ipv4.neigh.default.gc_thresh1 = 128

net.ipv4.neigh.default.gc_thresh2 = 512

net.ipv4.neigh.default.gc_thresh3 = 4096

2、如何通過/proc查看top中展示的進(jìn)程狀態(tài)

Linux系統(tǒng)上的/proc目錄是一種文件系統(tǒng)汉额,即proc文件系統(tǒng)曹仗。與其它常見的文件系統(tǒng)不同的是,/proc是一種偽文件系統(tǒng)(也即虛擬文件系統(tǒng))蠕搜,存儲(chǔ)的是當(dāng)前內(nèi)核運(yùn)行狀態(tài)的一系列特殊文件怎茫,用戶可以通過這些文件查看有關(guān)系統(tǒng)硬件及當(dāng)前正在運(yùn)行進(jìn)程的信息,甚至可以通過更改其中某些文件來改變內(nèi)核的運(yùn)行狀態(tài)妓灌。這個(gè)目錄中包含每個(gè)進(jìn)程的狀態(tài)信息轨蛤。

top中展示的進(jìn)程狀態(tài)有:

PID列:進(jìn)程ID,為/proc目錄下的數(shù)字目錄虫埂,每個(gè)進(jìn)程的PID數(shù)字做為目錄名稱祥山。

USER :進(jìn)程的所屬用戶,為/proc/PID/status文件中的Uid這行所對應(yīng)的用戶名稱掉伏。

PR :任務(wù)的調(diào)度優(yōu)先級 , 在/proc/PID/stat文件中第18列數(shù)值

NI :表示任務(wù)的NICE值缝呕,在/proc/PID/stat文件中第19列數(shù)值

VIRT :虛擬內(nèi)存大小(KiB)斧散,任務(wù)使用的虛擬內(nèi)存總量岳颇。 它包括所有代碼,數(shù)據(jù)和共享庫以及已換出的頁面和已映射但未使用的頁面颅湘。? ? ? 在/proc/PID/statm文件中第1列數(shù)值(單位為頁)

RES :表示駐留內(nèi)存大小(KiB) 栗精,任務(wù)正在使用的非交換物理內(nèi)存闯参。在/proc/PID/statm文件中第2列數(shù)值(單位為頁)

SHR :表示共享內(nèi)存大小(KiB)悲立,可能與其他進(jìn)程共享的內(nèi)存鹿寨,在/proc/PID/statm文件中第3列數(shù)值(單位為頁)

S? : 為/proc/PID/status文件中State:這行顯示的進(jìn)程狀態(tài)

%CPU :CPU使用率,自上一次屏幕刷新以來占用的CPU時(shí)間與總CPU時(shí)間的百分比薪夕。(通過計(jì)算得到)

%MEM :內(nèi)存使用(RES)任務(wù)當(dāng)前使用的可用物理內(nèi)存份額脚草。(通過計(jì)算RES與總內(nèi)存比率得到)

TIME+ :任務(wù)自啟動(dòng)以來使用的總CPU時(shí)間,顯示百分之一秒的精度(未找到)在/proc/PID/stat文件中體現(xiàn)為兩個(gè)時(shí)間之和 :第14列該任務(wù)在用戶態(tài)運(yùn)行的時(shí)間?和第15列該任務(wù)在核心態(tài)運(yùn)行的時(shí)間

COMMAND列:為/proc/PID/comm文件內(nèi)容

3原献、分別用while馏慨、for循環(huán)檢測10.0.0.1/24網(wǎng)段存活的IP地址

#!/bin/bash

ip=1

while [ $ip -le 255 ]

do

ping? -c 1 10.0.0.${ip}? &>/dev/null

if [ $? -eq 0 ]

then

echo "10.0.0.${ip} is up"

else

echo "10.0.0.${ip} is down"

fi

ip=$(($ip+1))

done


for ip in $(seq 1 254)

do

ping? -c 1 10.0.0.${ip}? &>/dev/null

if [ $? -eq 0 ]

then

echo "10.0.0.${ip} is up"

else

echo "10.0.0.${ip} is down"

fi

done


4、說明initrd的作用

initrd 是 boot loader initialized RAM disk的縮寫姑隅,表示由 boot loader 初始化的內(nèi)存盤写隶。在 linux內(nèi)核啟動(dòng)前, boot loader 會(huì)將磁盤等存儲(chǔ)介質(zhì)中的 initrd 文件先加載到內(nèi)存讲仰,內(nèi)核啟動(dòng)時(shí)會(huì)先訪問該內(nèi)存中的 initrd 文件系統(tǒng)然后才訪問真正的根文件系統(tǒng)慕趴。啟動(dòng)過程被分為兩個(gè)過程,第一過程是執(zhí)行內(nèi)存中的 initrd 文件系統(tǒng)中的初始化文件(在Linux2.4 內(nèi)核是/linuxrc 文件,是由文件系統(tǒng)鏡像生成的冕房;在Linux2.6內(nèi)核是/init文件躏啰,是使用 cpio 工具生成),負(fù)責(zé)加載內(nèi)核訪問根文件系統(tǒng)存儲(chǔ)介質(zhì)的驅(qū)動(dòng)模塊耙册, 以及加載根文件系統(tǒng)给僵。第二過程是執(zhí)行真正的根文件系統(tǒng)中的 /sbin/init 進(jìn)程。

initrd的主要作用:

(1)使linux 發(fā)行版適應(yīng)各種不同的硬件架構(gòu)

Linux發(fā)行版在內(nèi)核中只編譯了基本的硬件驅(qū)動(dòng)觅玻,在安裝過程中通過檢測系統(tǒng)硬件想际,生成包含安裝系統(tǒng)硬件驅(qū)動(dòng)的 initrd。linux 發(fā)行版必須適應(yīng)各種不同的硬件架構(gòu)溪厘,但又不可能把所有的驅(qū)動(dòng)編譯進(jìn)內(nèi)核胡本,否則內(nèi)核會(huì)變得臃腫龐大。所以Initrd成為linux 發(fā)行版的必備部件畸悬。

(2)livecd適應(yīng)復(fù)雜的硬件環(huán)境侧甫。

livecd是一種從CD光盤中直接引導(dǎo)出一個(gè)可用的Linux系統(tǒng)。這種方式面臨更為復(fù)雜的硬件環(huán)境蹋宦,也需要使用Initrd技術(shù)

(3)usb啟動(dòng)盤必備技術(shù)

因?yàn)閡sb從驅(qū)動(dòng)加載到設(shè)備真正可用大概需要幾秒鐘時(shí)間披粟。如果將 usb 驅(qū)動(dòng)編譯進(jìn)內(nèi)核,那在內(nèi)核訪問 usb 設(shè)備時(shí)冷冗, usb 設(shè)備通常沒有初始化完畢守屉。所以改為在 initrd 中加載 usb 驅(qū)動(dòng),然后休眠幾秒中蒿辙,等待 usb設(shè)備初始化完畢后再掛載 usb 設(shè)備中的文件系統(tǒng)拇泛。

(4)實(shí)現(xiàn)個(gè)性化 bootsplash

Boot-splash通過對內(nèi)核打補(bǔ)丁來改變linux控制臺對圖像顯示的支持,通過用戶空間程式來定制啟動(dòng)logo思灌、設(shè)定控制臺背景和顯隱啟動(dòng)時(shí)的字符信息俺叭,甚至能夠支持開機(jī)畫面的動(dòng)畫顯示。在 linuxrc 腳本中可以很方便地啟用個(gè)性化 bootsplash泰偿。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末熄守,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子耗跛,更是在濱河造成了極大的恐慌裕照,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件调塌,死亡現(xiàn)場離奇詭異牍氛,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)烟阐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門搬俊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來紊扬,“玉大人,你說我怎么就攤上這事唉擂〔褪海” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵玩祟,是天一觀的道長腹缩。 經(jīng)常有香客問我,道長空扎,這世上最難降的妖魔是什么藏鹊? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮转锈,結(jié)果婚禮上盘寡,老公的妹妹穿的比我還像新娘。我一直安慰自己撮慨,他們只是感情好竿痰,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著砌溺,像睡著了一般影涉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上规伐,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天蟹倾,我揣著相機(jī)與錄音,去河邊找鬼猖闪。 笑死喊式,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的萧朝。 我是一名探鬼主播,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼夏哭,長吁一口氣:“原來是場噩夢啊……” “哼检柬!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起竖配,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤何址,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后进胯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體用爪,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年胁镐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了偎血。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片诸衔。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖颇玷,靈堂內(nèi)的尸體忽然破棺而出笨农,到底是詐尸還是另有隱情,我是刑警寧澤帖渠,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布谒亦,位于F島的核電站,受9級特大地震影響空郊,放射性物質(zhì)發(fā)生泄漏份招。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一狞甚、第九天 我趴在偏房一處隱蔽的房頂上張望锁摔。 院中可真熱鬧,春花似錦入愧、人聲如沸鄙漏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽怔蚌。三九已至,卻和暖如春旁赊,著一層夾襖步出監(jiān)牢的瞬間桦踊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工终畅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留籍胯,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓离福,卻偏偏與公主長得像杖狼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子妖爷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 1蝶涩、列舉常見的內(nèi)核參數(shù)以及參數(shù)的意義 (1)net.ipv4.ip_forward:數(shù)據(jù)包的路由轉(zhuǎn)發(fā)開關(guān),設(shè)置為1...
    衛(wèi)清華閱讀 203評論 0 0
  • 1絮识、列舉常見的內(nèi)核參數(shù)以及參數(shù)的意義 (1)net.ipv4.ip_forward:數(shù)據(jù)包的路由轉(zhuǎn)發(fā)開關(guān)绿聘,設(shè)置為1...
    小邢_閱讀 351評論 0 0
  • 1、簡述linux操作系統(tǒng)啟動(dòng)流程 CentOS 5 啟動(dòng) 1.POST:通電自檢 2.BIOS:BO...
    肖恩的博客閱讀 265評論 0 0
  • 一次舌、簡述linux操作系統(tǒng)啟動(dòng)流程 啟動(dòng)第一步--加載BIOS 當(dāng)你打開計(jì)算機(jī)電源熄攘,計(jì)算機(jī)會(huì)首先加載BIOS信息,...
    N32_Diamond閱讀 2,269評論 1 28
  • 1彼念、100.0.0.16/28 對應(yīng)網(wǎng)段的網(wǎng)關(guān)地址挪圾、廣播地址浅萧、可分配IP地址范圍 /28掩碼對應(yīng)255.255....
    是小何同學(xué)閱讀 346評論 0 0