Linux 基礎知識(六)

一、100.0.0.16/28 對應網段的網關地址、廣播地址、可分配IP地址範圍
網關地址=100.0.0.16
廣播地址=100.0.0.31
可分配IP地址=100.0.0.17~100.0.0.30
 
二、tcpdump的使用
1.針對特定網口抓包(-i選項)
tcpdump -i ens192
 
2.抓取指定數目的包(-c選項)
使用-c選項我們可以指定抓包的數量:抓2個包
tcpdump -c 2 -i ens192

3.將抓到包寫入文件中(-w選項)應當保存爲.pcap後綴的文件,方便我們使用wireshark等工具讀取分析。
tcpdump -w 2018.pcap -i ens192

4.讀取tcpdump保存文件(-r選項)對於保存的抓包文件,我們可以使用-r選項進行讀取:
tcpdump -r 2018.pcap
 
5.抓包時不進行域名解析(-n選項)
默認情況下,tcpdump抓包結果中將進行域名解析,顯示的是域名地址而非ip地址,使用-n選項,可指定顯示ip地址。
tcpdump -nn

6.增加抓包時間戳(-tttt選項)
使用-tttt選項,抓包結果中將包含抓包日期:
tcpdump -n -tttt -i ens192

7.指定抓包的協議類型
我們可以只抓某種協議的包,tcpdump支持指定以下協議:ip,ip6,arp,tcp,udp,wlan等。
tcpdump -i ens192 arp
 
8.指定抓包端口
如果想要對某個特定的端口抓包,可以通過以下命令:
tcpdump -i ens192 port 80
 
9.抓取特定目標ip和端口的包
網絡包的內容中,包含了源ip地址、端口和目標ip、端口,我們可以根據目標ip和端口過濾tcpdump抓包結果,
tcpdump -i ens192 dst 10.118.1.10 and port 22

 
 
三、殭屍進程產生的原因以及危害
殭屍進程是當子進程比父進程先結束,而父進程又沒有回收子進程,釋放子進程佔用的資源,此時子進程將成爲一個殭屍進程。如果父進程先退出 ,子進程被init接管,子進程退出後init會回收其佔用的相關資源.
由於子進程的結束和父進程的運行是一個異步過程,即父進程永遠無法預測子進程 到底什麼時候結束. 那麼會不會因爲父進程太忙來不及wait子進程,或者說不知道 子進程什麼時候結束,而丟失子進程結束時的狀態信息呢? 不會。因爲UNⅨ提供了一種機制可以保證只要父進程想知道子進程結束時的狀態信息, 就可以得到。這種機制就是: 在每個進程退出的時候,內核釋放該進程所有的資源,包括打開的文件,佔用的內存等。但是仍然爲其保留一定的信息(包括進程號the process ID,退出狀態the termination status of the process,運行時間the amount of CPU time taken by the process等)。直到父進程通過wait / waitpid來取時才釋放. 但這樣就導致了問題,如果進程不調用wait /waitpid的話,那麼保留的那段信息就不會釋放,其進程號就會一直被佔用,但是系統所能使用的進程號是有限的,如果大量的產生僵死進程,將因爲沒有可用的進程號而導致系統不能產生新的進程。

 
 

四、vmstat輸出
Procs(進程)
r: 運行隊列中進程數量,這個值也可以判斷是否需要增加CPU。(長期大於1)
b 等待IO的進程數量。
 
Memory(內存)
swpd 使用虛擬內存大小,如果swpd的值不爲0,但是SI,SO的值長期爲0,這種情況不會影響系統性能。
free 空閒物理內存大小。
buff 用作緩衝的內存大小。
cache 用作緩存的內存大小,如果cache的值大的時候,說明cache處的文件數多,如果頻繁訪問到的文件都能被cache處,那麼磁盤的讀IO bi會非常小。
 
Swap
si 每秒從交換區寫到內存的大小,由磁盤調入內存。
so 每秒寫入交換區的內存大小,由內存調入磁盤。
注意:內存夠用的時候,這2個值都是0,如果這2個值長期大於0時,系統性能會受到影響,磁盤IO和CPU資源都會被消耗。有些朋友看到空閒內存(free)很少的或接近於0時,就認爲內存不夠用了,不能光看這一點,還要結合si和so,如果free很少,但是si和so也很少(大多時候是0),那麼不用擔心,系統性能這時不會受到影響的。因爲linux總是先把內存用光
 
IO
bi 每秒讀取的塊數
bo 每秒寫入的塊數
注意:隨機磁盤讀寫的時候,這2個值越大(如超出1024k),能看到CPU在IO等待的值也會越大。
 
system(系統)
in 每秒中斷數,包括時鐘中斷。
cs 每秒上下文切換數。
注意:上面2個值越大,會看到由內核消耗的CPU時間會越大。
 
CPU(以百分比表示)
us 用戶進程執行時間百分比(user time) us的值比較高時,說明用戶進程消耗的CPU時間多,但是如果長期超50%的使用,那麼我們就該考慮優化程序算法或者進行加速。
sy: 內核系統進程執行時間百分比(system time) sy的值高時,說明系統內核消耗的CPU資源多,這並不是良性表現,我們應該檢查原因。
wa IO等待時間百分比 wa的值高時,說明IO等待比較嚴重,這可能由於磁盤大量作隨機訪問造成,也有可能磁盤出現瓶頸(塊操作)。
id 空閒時間百分比

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