Linux子網(wǎng)劃分性昭、系統(tǒng)進程監(jiān)控

1、100.0.0.16/28 對應(yīng)網(wǎng)段的網(wǎng)關(guān)地址县遣、廣播地址糜颠、可分配IP地址范圍

根據(jù)IP地址100.0.0.16判斷該IP為一個A類IP地址汹族。
根據(jù)子網(wǎng)掩碼28,得到主機位是4位,掩碼為255.255.255.240
因此主機數(shù)量為2^4-2= 14臺主機
以第四段為例計算其兴,
其中子網(wǎng)個數(shù)為2^4=16個鞠抑,其中4表示借用第四段4個主機位
其中合法子網(wǎng)為:0 16 32 48 64 ...240總共16個
而IP地址100.0.0.16 在子網(wǎng)16中,
該子網(wǎng)的網(wǎng)絡(luò)地址為:100.0.0.16
廣播地址:100.0.0.31
可分配IP地址范圍是100.0.0.17-100.0.0.30這14個IP地址忌警。
網(wǎng)關(guān)地址為可分配IP地址范圍中的任意一個IP地址搁拙。

2、使用man手冊學習tcpdump的使用

tcpdump 是一個運行在命令行下的抓包工具法绵。它允許用戶攔截和顯示發(fā)送或收到過網(wǎng)絡(luò)連接到該計算機的TCP/IP和其他數(shù)據(jù)包箕速。tcpdump 適用于大多數(shù)的類Unix系統(tǒng)操作系統(tǒng)(如linux,BSD等)。

  • tcpdump采用命令行方式朋譬,它的命令格式為:
    Usage: tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ]
    [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
    [ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ]
    [ -Q|-P in|out|inout ]
    [ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ]
    [ --immediate-mode ] [ -T type ] [ --version ] [ -V file ]
    [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ]
    [ -Z user ] [ expression ]
  • 命令選項說明
    -a #將網(wǎng)絡(luò)地址和廣播地址轉(zhuǎn)變成名字
    -A #以ASCII格式打印出所有分組盐茎,并將鏈路層的頭最小化
    -b #數(shù)據(jù)鏈路層上選擇協(xié)議,包括ip/arp/rarp/ipx都在這一層
    -c #指定收取數(shù)據(jù)包的次數(shù)徙赢,即在收到指定數(shù)量的數(shù)據(jù)包后退出tcpdump
    -d #將匹配信息包的代碼以人們能夠理解的匯編格式輸出
    -dd #將匹配信息包的代碼以c語言程序段的格式輸出
    -ddd #將匹配信息包的代碼以十進制的形式輸出
    -D #打印系統(tǒng)中所有可以監(jiān)控的網(wǎng)絡(luò)接口
    -e #在輸出行打印出數(shù)據(jù)鏈路層的頭部信息
    -f #將外部的Internet地址以數(shù)字的形式打印出來字柠,即不顯示主機名
    -F #從指定的文件中讀取表達式,忽略其他的表達式
    -i #指定監(jiān)聽網(wǎng)絡(luò)接口
    -l #使標準輸出變?yōu)榫彌_形式狡赐,可以數(shù)據(jù)導(dǎo)出到文件
    -L #列出網(wǎng)絡(luò)接口已知的數(shù)據(jù)鏈路
    -n #不把網(wǎng)絡(luò)地址轉(zhuǎn)換為名字
    -N 不輸出主機名中的域名部分窑业,例如www.baidu.com只輸出www
    -nn #不進行端口名稱的轉(zhuǎn)換
    -P #不將網(wǎng)絡(luò)接口設(shè)置為混雜模式
    -q #快速輸出,即只輸出較少的協(xié)議信息
    -r #從指定的文件中讀取數(shù)據(jù)枕屉,一般是-w保存的文件
    -w #將捕獲到的信息保存到文件中常柄,且不分析和打印在屏幕
    -s #從每個組中讀取在開始的snaplen個字節(jié),而不是默認的68個字節(jié)
    -S #將tcp的序列號以絕對值形式輸出搀擂,而不是相對值
    -T #將監(jiān)聽到的包直接解析為指定的類型的報文西潘,常見的類型有rpc(遠程過程調(diào)用)和snmp(簡單網(wǎng)絡(luò)管理協(xié)議)
    -t #在輸出的每一行不打印時間戳
    -tt #在每一行中輸出非格式化的時間戳
    -ttt #輸出本行和前面以后之間的時間差
    -tttt #在每一行中輸出data處理的默認格式的時間戳
    -u #輸出未解碼的NFS句柄
    -v #輸出稍微詳細的信息,例如在ip包中可以包括ttl和服務(wù)類型的信息
    -vv#輸出相信的報文信息
  • tcpdump的表達式:
    表達式是一個正則表達式哨颂,tcpdump利用它作為過濾報文的條件喷市,如果一個報文滿足表達式的條件,則這個報文將會被捕獲威恼。如果沒有給出任何條件品姓,則網(wǎng)絡(luò)上所有的信息包 將會被截獲,在表達式中一般如下幾種類型的關(guān)鍵字:
    • 關(guān)于數(shù)據(jù)類型的關(guān)鍵字:
      包括host沃测、port缭黔、net,例如host 192.168.1.1表示這是一臺主機蒂破,net 192.168.0.0表示這是一個網(wǎng)絡(luò)地址,port 22指明端口號是22别渔,如果沒有指明類型附迷,則默認的類型是host惧互。
    • 數(shù)據(jù)傳輸方向的關(guān)鍵字:
      包括src、dst喇伯、dst or src喊儡、dst and src,這些關(guān)鍵字指明了傳輸?shù)姆较蚋钔保热鐂rc 192.168.1.1說明數(shù)據(jù)包源地址是192.168.1.1蕾域,dst net 192.168.0.0指明目的網(wǎng)絡(luò)地址是192.168.0.0宙橱,默認是監(jiān)控主機對主機的src和dst,即默認監(jiān)聽本機和目標主機的所有數(shù)據(jù)匆赃。
    • 協(xié)議關(guān)鍵字:
      包括ip、arp今缚、rarp算柳、tcp、udp等姓言,
    • 其他關(guān)鍵字:
      運算類型的:or瞬项、and、not何荚、!
      輔助功能型的:gateway囱淋、less、broadcast餐塘、greater
  • tcpdump常用示例
 下面所有測試中都有 -i any的選項绎橘,表示抓取所有網(wǎng)絡(luò)接口上的包,只是為了讓測試方便
  
  //抓取arp協(xié)議的包唠倦,然后host為10.192.2.*  測試時需要在另一個session称鳞,做一個ifconfig指令
  //arp可以換為tcp,udp等
[root@node01 ~]#tcpdump -i any -n arp host 10.192.2.222 
15:36:51.821905 ARP, Request who-has 10.192.2.1 tell 10.192.2.222, length 28
15:36:51.822449 ARP, Reply 10.192.2.1 is-at 38:97:d6:f8:bd:33, length 46

  //抓取訪問destination 80端口的包,然后我們做一個curl www.baidu.com的操作
[root@node01 ~]# tcpdump -i any -n dst port 80 
15:39:01.369435 IP 10.192.2.222.47686 > 14.215.177.38.http: Flags [S], seq 819318323, win 29200, options [mss 1460,sackOK,TS val 2850464827 ecr 0,nop,wscale 7], length 0
15:39:01.376363 IP 10.192.2.222.47686 > 14.215.177.38.http: Flags [.], ack 1490870282, win 229, length 0
15:39:01.376479 IP 10.192.2.222.47686 > 14.215.177.38.http: Flags [P.], seq 0:77, ack 1, win 229, length 77: HTTP: GET / HTTP/1.1
15:39:01.386582 IP 10.192.2.222.47686 > 14.215.177.38.http: Flags [.], ack 1849, win 257, length 0
15:39:01.386637 IP 10.192.2.222.47686 > 14.215.177.38.http: Flags [.], ack 2782, win 277, length 0
15:39:01.386884 IP 10.192.2.222.47686 > 14.215.177.38.http: Flags [F.], seq 77, ack 2782, win 277, length 0
15:39:01.393760 IP 10.192.2.222.47686 > 14.215.177.38.http: Flags [.], ack 2783, win 277, length 0

  //抓取源上端口是22的包
[root@node01 ~]# tcpdump -i any -n src port 22  
15:42:01.250919 IP 10.192.2.222.ssh > 10.192.52.63.54158: Flags [P.], seq 2151794643:2151794839, ack 2324872893, win 291, length 196
15:42:01.251262 IP 10.192.2.222.ssh > 10.192.52.63.54158: Flags [P.], seq 196:376, ack 1, win 291, length 180
15:42:01.251447 IP 10.192.2.222.ssh > 10.192.52.63.54158: Flags [P.], seq 376:540, ack 1, win 291, length 164


  //抓取源或者目標端口都是22的包
[root@node01 ~]# tcpdump -i any -n port 22 -c   
15:42:55.031581 IP 10.192.2.222.ssh > 10.192.52.63.54158: Flags [P.], seq 2151796671:2151796867, ack 2324874073, win 291, length 196
15:42:55.031937 IP 10.192.2.222.ssh > 10.192.52.63.54158: Flags [P.], seq 196:376, ack 1, win 291, length 180
15:42:55.032124 IP 10.192.2.222.ssh > 10.192.52.63.54158: Flags [P.], seq 376:540, ack 1, win 291, length 164



  //表示抓取destination prot 在1到80之間的端口的數(shù)據(jù),在另外的面做curl www.baidu.com 
[root@node01 ~]# tcpdump -i any -n dst portrange 1-80  
15:44:45.205605 IP 10.192.52.63.54158 > 10.192.2.222.ssh: Flags [P.], seq 0:52, ack 1629, win 253, length 52
15:44:45.216919 IP 10.192.2.222.59407 > 114.114.114.114.domain: 63614+ A? www.baidu.com. (31)
15:44:45.216943 IP 10.192.2.222.59407 > 114.114.114.114.domain: 39132+ AAAA? www.baidu.com. (31)
15:44:45.218231 IP 10.192.52.63.54158 > 10.192.2.222.ssh: Flags [.], ack 2073, win 252, length 0
15:44:45.244046 IP 10.192.2.222.47688 > 14.215.177.38.http: Flags [S], seq 36781375, win 29200, options [mss 1460,sackOK,TS val 2850808702 ecr 0,nop,wscale 7], length 0
15:44:45.245393 IP 10.192.52.63.54158 > 10.192.2.222.ssh: Flags [.], ack 2433, win 256, length 0
15:44:45.249647 IP 10.192.2.222.47688 > 14.215.177.38.http: Flags [.], ack 4195151903, win 229, length 0
15:44:45.249916 IP 10.192.2.222.47688 > 14.215.177.38.http: Flags [P.], seq 0:77, ack 1, win 229, length 77: HTTP: GET / HTTP/1.1
15:44:45.250800 IP 10.192.52.63.54158 > 10.192.2.222.ssh: Flags [.], ack 2729, win 255, length 0
15:44:45.252378 IP 10.192.52.63.54158 > 10.192.2.222.ssh: Flags [.], ack 3057, win 254, length 0
15:44:45.256963 IP 10.192.2.222.47688 > 14.215.177.38.http: Flags [.], ack 1449, win 251, length 0
15:44:45.257038 IP 10.192.2.222.47688 > 14.215.177.38.http: Flags [.], ack 2782, win 272, length 0
15:44:45.257363 IP 10.192.2.222.47688 > 14.215.177.38.http: Flags [F.], seq 77, ack 2782, win 272, length 0


  //抓取源的端口是20-80的包
[root@node01 ~]# tcpdump -i any -n src portrange 20-80 
15:48:25.510628 IP 10.192.2.222.ssh > 10.192.52.63.54158: Flags [P.], seq 2152992151:2152992347, ack 2324881429, win 291, length 196
15:48:25.510960 IP 10.192.2.222.ssh > 10.192.52.63.54158: Flags [P.], seq 196:376, ack 1, win 291, length 180
15:48:25.511157 IP 10.192.2.222.ssh > 10.192.52.63.54158: Flags [P.], seq 376:540, ack 1, win 291, length 164


   
  //抓取destination為www.baidu.com的包
 [root@node01 ~]# tcpdump -i any dst www.baidu.com

15:50:06.569979 IP node01 > 14.215.177.39: ICMP echo request, id 5139, seq 16, length 64
15:50:07.571298 IP node01 > 14.215.177.39: ICMP echo request, id 5139, seq 17, length 64


  //抓取destination為10.192.2.161的包
[root@node01 ~]# tcpdump -i any dst 10.192.2.161
15:52:02.265951 ARP, Request who-has 10.192.2.161 tell gateway, length 46
15:53:02.311727 ARP, Request who-has 10.192.2.161 tell gateway, length 46


  //抓取包長度小于800的包
 [root@node01 ~]# tcpdump -i any -n less 800
15:56:02.297070 IP 10.192.2.222.ssh > 10.192.52.63.54158: Flags [P.], seq 196:376, ack 1, win 291, length 180
15:56:02.297252 IP 10.192.2.222.ssh > 10.192.52.63.54158: Flags [P.], seq 376:540, ack 1, win 291, length 164


  //抓取包長度大于800的包
[root@node01 ~]# tcpdump -i any -n greater  800
5:57:52.926274 IP 14.215.177.38.http > 10.192.2.222.47690: Flags [P.], seq 727058018:727059866, ack 3414192055, win 776, length 1848: HTTP: HTTP/1.1 200 OK
15:57:52.926352 IP 14.215.177.38.http > 10.192.2.222.47690: Flags [P.], seq 1848:2781, ack 1, win 776, length 933: HTTP
15:57:52.928952 IP 10.192.2.222.ssh > 10.192.52.63.54158: Flags [P.], seq 2153586163:2153588631, ack 2324893229, win 291, length 2468


  //只抓取tcp包
[root@node01 ~]# tcpdump -i any -n tcp
15:58:59.096035 IP 10.192.2.222.ssh > 10.192.52.63.54158: Flags [P.], seq 196:376, ack 1, win 291, length 180
15:58:59.096253 IP 10.192.2.222.ssh > 10.192.52.63.54158: Flags [P.], seq 376:540, ack 1, win 291, length 164

  //只抓取udp包
[root@node01 ~]# tcpdump -i any -n udp 
15:59:54.956283 IP 10.192.2.126.netbios-dgm > 10.192.2.255.netbios-dgm: NBT UDP PACKET(138)

  //只抓取icmp的包,ping命令
  [root@node01 ~]# tcpdump -i any -n icmp
16:00:40.899281 IP 10.192.2.222 > 14.215.177.38: ICMP echo request, id 5160, seq 1, length 64
16:00:40.905691 IP 14.215.177.38 > 10.192.2.222: ICMP echo reply, id 5160, seq 1, length 64
16:00:41.900451 IP 10.192.2.222 > 14.215.177.38: ICMP echo request, id 5160, seq 2, length 64

3稠鼻、詳細敘述僵尸進程產(chǎn)生的原因以及危害

  • 僵尸進程簡介
    在linux系統(tǒng)中冈止,當用ps命令觀察進程的執(zhí)行狀態(tài)時,經(jīng)澈虺荩看到某些進程的狀態(tài)欄為defunct熙暴,這就是所謂的“僵尸”進程』哦ⅲ“僵尸”進程是一個早已死亡的進程周霉,但在進程表(processs table)中仍占了一個位置(slot)。由于進程表的容量是有限的亚皂,所以俱箱,defunct進程不僅占用系統(tǒng)的內(nèi)存資源,影響系統(tǒng)的性能灭必,而且如果其數(shù)目太多狞谱,還會導(dǎo)致系統(tǒng)癱瘓乃摹。
  • 僵尸進程的產(chǎn)生原因
    我們知道,每個進程在進程表里都有一個進入點(entry)跟衅,核心程序執(zhí)行該進程時使用到的一切信息都存儲在進入點孵睬。當用ps命令察看系統(tǒng)中的進程信息時,看到的就是進程表中的相關(guān)數(shù)據(jù)伶跷。所以掰读,當一個父進程以fork()系統(tǒng)調(diào)用建立一個新的子進程后,核心進程就會在進程表中給這個子進程分配一個進入點叭莫,然后將相關(guān)信息存儲在該進入點所對應(yīng)的進程表內(nèi)蹈集。這些信息中有一項是其父進程的識別碼。而當這個子進程結(jié)束的時候(比如調(diào)用exit命令結(jié)束)食寡,其實他并沒有真正的被銷毀雾狈,而是留下一個稱為僵尸進程(Zombie)的數(shù)據(jù)結(jié)構(gòu)(系統(tǒng)調(diào)用exit的作用是使進程退出,但是也僅僅限于一個正常的進程變成了一個僵尸進程抵皱,并不能完全將其銷毀)善榛。此時原來進程表中的數(shù)據(jù)會被該進程的退出碼(exit code)、執(zhí)行時所用的CPU時間等數(shù)據(jù)所取代呻畸,這些數(shù)據(jù)會一直保留到系統(tǒng)將它傳遞給它的父進程為止移盆。由此可見,defunct進程的出現(xiàn)時間是在子進程終止后伤为,但是父進程尚未讀取這些數(shù)據(jù)之前咒循。此時,該僵尸子進程已經(jīng)放棄了幾乎所有的內(nèi)存空間绞愚,沒有任何可執(zhí)行代碼叙甸,也不能被調(diào)度,僅僅在進程列表中保留一個位置位衩,記載該進程的退出狀態(tài)信息供其他進程收集裆蒸,除此之外,僵尸進程不再占有任何存儲空間糖驴。他需要他的父進程來為他收尸僚祷,如果他的父進程沒有安裝SIGCHLD信號處理函數(shù)調(diào)用wait 或 waitpid() 等待子進程結(jié)束,也沒有顯式忽略該信號贮缕,那么它就一直保持僵尸狀態(tài)辙谜,如果這時候父進程結(jié)束了,那么init進程會自動接手這個子進程感昼,為他收尸装哆,他還是能被清除掉的。但是如果父進程是一個循環(huán),不會結(jié)束烂琴,那么子進程就會一直保持僵尸狀態(tài)爹殊,這就是系統(tǒng)中為什么有時候會有很多的僵尸進程蜕乡。
  • 如何殺死僵尸進程
    • 重啟服務(wù)器電腦奸绷,這個是最簡單,最易用的方法层玲,但是如果你服務(wù)器電腦上運行有其他的程序号醉,那么這個方法,代價很大辛块。
    • 找到該defunct僵尸進程的父進程畔派,將該進程的父進程殺掉,則此defunct進程將自動消失
      命令: ps -ef | grep defunct_process_pid
  • 如何預(yù)防僵尸進程
    • 在父進程創(chuàng)建子進程之前润绵,就向系統(tǒng)申明自己并不會對這個子進程的exit動作進行任何關(guān)注行為线椰,這樣的話,子進程一旦退出后尘盼,系統(tǒng)就不會去等待父進程的操作憨愉,而是直接將該子進程的資源回收掉,也就不會出現(xiàn)僵尸進程了卿捎。具體的辦法就是配紫,在父進程的初始化函數(shù)中,調(diào)用這個函數(shù):signal(SIGCHLD,SIG_IGN)午阵;
    • 如果上述語句沒來得及調(diào)用躺孝,也有另外一個辦法。那就是在創(chuàng)建完子進程后底桂,用waitpid等待子進程返回植袍,也能達到上述效果;
    • 如果上述兩個辦法都不愿意采用籽懦,那還有一招:在父進程創(chuàng)建子進程的時候于个,連續(xù)調(diào)用兩次fork(),而且使緊跟的子進程直接退出猫十,使其孫子進程成為孤兒進程览濒,從而init進程將代替父進程來接手,負責清除這個孤兒進程拖云。于是贷笛,父進程就無需進行任何的清理行為,系統(tǒng)會自動處理宙项;

4乏苦、詳細說明vmstat輸出結(jié)果的含義

vmstat命令: 用來獲得有關(guān)進程、虛存、頁面交換空間及 CPU活動的信息汇荐。這些信息反映了系統(tǒng)的負載情況洞就。

  • 虛擬內(nèi)存運行原理
    在系統(tǒng)中運行的每個進程都需要使用到內(nèi)存,但不是每個進程都需要每時每刻使用系統(tǒng)分配的內(nèi)存空間掀淘。當系統(tǒng)運行所需內(nèi)存超過實際的物理內(nèi)存旬蟋,內(nèi)核會釋放某些進程所占用但未使用的部分或所有物理內(nèi)存,將這部分資料存儲在磁盤上直到進程下一次調(diào)用革娄,并將釋放出的內(nèi)存提供給有需要的進程使用倾贰。在Linux內(nèi)存管理中,主要是通過“調(diào)頁Paging”和“交換Swapping”來完成上述的內(nèi)存調(diào)度拦惋。調(diào)頁算法是將內(nèi)存中最近不常使用的頁面換到磁盤上匆浙,把活動頁面保留在內(nèi)存中供進程使用。交換技術(shù)是將整個進程厕妖,而不是部分頁面首尼,全部交換到磁盤上。分頁(Page)寫入磁盤的過程被稱作Page-Out言秸,分頁(Page)從磁盤重新回到內(nèi)存的過程被稱作Page-In软能。當內(nèi)核需要一個分頁時,但發(fā)現(xiàn)此分頁不在物理內(nèi)存中(因為已經(jīng)被Page-Out了)井仰,此時就發(fā)生了分頁錯誤(Page Fault)埋嵌。當系統(tǒng)內(nèi)核發(fā)現(xiàn)可運行內(nèi)存變少時,就會通過Page-Out來釋放一部分物理內(nèi)存俱恶。經(jīng)管Page-Out不是經(jīng)常發(fā)生雹嗦,但是如果Page-out頻繁不斷的發(fā)生,直到當內(nèi)核管理分頁的時間超過運行程式的時間時合是,系統(tǒng)效能會急劇下降了罪。這時的系統(tǒng)已經(jīng)運行非常慢或進入暫停狀態(tài),這種狀態(tài)亦被稱作thrashing(顛簸)聪全。
  • vmstat常用用法組合
    vmstat [options] [delay [count]]
    vmstat [-a] [-n] [-S unit] [delay [ count]]
    vmstat [-s] [-n] [-S unit]
    vmstat [-m] [-n] [delay [ count]]
    vmstat [-d] [-n] [delay [ count]]
    vmstat [-p disk partition] [-n] [delay [ count]]
    vmstat [-f]
    vmstat [-V]
  • 選項說明
    -a:顯示活躍和非活躍內(nèi)存
    -f:顯示從系統(tǒng)啟動至今的fork數(shù)量 泊藕。
    -m:顯示slabinfo
    -n:只在開始時顯示一次各字段名稱。
    -s:顯示內(nèi)存相關(guān)統(tǒng)計信息及多種系統(tǒng)活動數(shù)量难礼。
    delay:刷新時間間隔娃圆。如果不指定,只顯示一條結(jié)果蛾茉。
    count:刷新次數(shù)讼呢。如果不指定刷新次數(shù),但指定了刷新時間間隔谦炬,這時刷新次數(shù)為無窮悦屏。
    -d:顯示磁盤相關(guān)統(tǒng)計信息节沦。
    -p:顯示指定磁盤分區(qū)統(tǒng)計信息
    -S:使用指定單位顯示。參數(shù)有 k 础爬、K 甫贯、m 、M 看蚜,分別代表1000叫搁、1024、1000000失乾、1048576字節(jié)(byte)常熙。默認單位為K(1024 bytes)
    -V:顯示vmstat版本信息纬乍。
  • 根據(jù)示例進行字段說明
[root@node01 ~]# vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 1135388   6332 2578060    0    0     0     1    4    5  0  0 100  0  0
 0  0      0 1135372   6332 2578060    0    0     0     0   98   81  0  0 100  0  0
 0  0      0 1135372   6332 2578060    0    0     0     0   86   72  0  0 100  0  0
 0  0      0 1135372   6332 2578060    0    0     0     0   92   74  0  0 100  0  0
 0  0      0 1135372   6332 2578060    0    0     0     0   83   72  0  0 100  0  0
  • procs
    r 等待執(zhí)行的任務(wù)數(shù) 說明:展示了正在執(zhí)行和等待cpu資源的任務(wù)個數(shù)碱茁。當這個值超過了cpu個數(shù),就會出現(xiàn)cpu瓶頸
    b 等待IO的進程數(shù)量
  • memory
    swpd 正在使用虛擬的內(nèi)存大小仿贬,單位k
    free 空閑內(nèi)存大小
    buff 已用的buff大小纽竣,對塊設(shè)備的讀寫進行緩沖
    cache 已用的cache大小,文件系統(tǒng)的cache
    inact 非活躍內(nèi)存大小茧泪,即被標明可回收的內(nèi)存蜓氨,區(qū)別于free和active
    active 活躍的內(nèi)存大小
  • swap
    si 每秒從交換區(qū)寫入內(nèi)存的大小(單位:kb/s)
    so 每秒從內(nèi)存寫到交換區(qū)的大小
  • io
    bi 每秒讀取的塊數(shù)(讀磁盤)
    bo 每秒寫入的塊數(shù)(寫磁盤)
  • system
    in 每秒中斷數(shù)队伟,包括時鐘中斷
    cs 每秒上下文切換數(shù)
  • cpu
    us 用戶進程執(zhí)行消耗cpu時間(user time)
    sy 系統(tǒng)進程消耗cpu時間(system time)
    id 空閑時間(包括IO等待時間)
    wa 等待IO時間
    st 從虛擬機竊取的時間
  • 常見問題處理
    • 如果r經(jīng)常大于4穴吹,且id經(jīng)常少于40,表示cpu的負荷很重嗜侮。

    • 如果si港令,so長期不等于0,表示內(nèi)存不足锈颗。

    • 如果wa經(jīng)常不等于0顷霹,且在b中的隊列大于3,表示io性能不好击吱。

    • 如果在processes中運行的序列(process r)是連續(xù)的大于在系統(tǒng)中的CPU的個數(shù)表示系統(tǒng)現(xiàn)在運行比較慢,有多數(shù)的進程等待CPU淋淀。

    • 如果r的輸出數(shù)大于系統(tǒng)中可用CPU個數(shù)的4倍的話,則系統(tǒng)面臨著CPU短缺的問題,或者是CPU的速率過低,系統(tǒng)中有多數(shù)的進程在等待CPU,造成系統(tǒng)中進程運行過慢。

    • 如果空閑時間(cpu id)持續(xù)為0并且系統(tǒng)時間(cpu sy)是用戶時間的兩倍(cpu us)系統(tǒng)則面臨著CPU資源的短缺覆醇。
      解決辦法:
      當發(fā)生以上問題的時候請先調(diào)整應(yīng)用程序?qū)PU的占用情況.使得應(yīng)用程序能夠更有效的使用CPU.同時可以考慮增加更多的CPU. 關(guān)于CPU的使用情況還可以結(jié)合mpstat, ps aux top prstat –a等等一些相應(yīng)的命令來綜合考慮關(guān)于具體的CPU的使用情況,和那些進程在占用大量的CPU時間.一般情況下朵纷,應(yīng)用程序的問題會比較大一些.比如一些sql語句不合理等等都會造成這樣的現(xiàn)象.

    • 內(nèi)存問題現(xiàn)象:
      內(nèi)存的瓶頸是由scan rate (sr)來決定的.scan rate是通過每秒的始終算法來進行頁掃描的.如果scan rate(sr)連續(xù)的大于每秒200頁則表示可能存在內(nèi)存缺陷.同樣的如果page項中的pi和po這兩欄表示每秒頁面的調(diào)入的頁數(shù)和每秒調(diào)出的頁數(shù).如果該值經(jīng)常為非零值,也有可能存在內(nèi)存的瓶頸,當然,如果個別的時候不為0的話,屬于正常的頁面調(diào)度這個是虛擬內(nèi)存的主要原理.
      解決辦法:
      1.調(diào)節(jié)applications & servers使得對內(nèi)存和cache的使用更加有效.
      2.增加系統(tǒng)的內(nèi)存.
      關(guān)于內(nèi)存的使用情況還可以結(jié)ps aux top prstat –a等等一些相應(yīng)的命令來綜合考慮關(guān)于具體的內(nèi)存的使用情況,和那些進程在占用大量的內(nèi)存.一般情況下,如果內(nèi)存的占用率比較高,但是,CPU的占用很低的時候,可以考慮是有很多的應(yīng)用程序占用了內(nèi)存沒有釋放,但是,并沒有占用CPU時間,可以考慮應(yīng)用程序,對于未占用CPU時間和一些后臺的程序,釋放內(nèi)存的占用永脓。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末袍辞,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子憨奸,更是在濱河造成了極大的恐慌革屠,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異似芝,居然都是意外死亡那婉,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進店門党瓮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來详炬,“玉大人,你說我怎么就攤上這事寞奸∏好眨” “怎么了?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵枪萄,是天一觀的道長隐岛。 經(jīng)常有香客問我,道長瓷翻,這世上最難降的妖魔是什么聚凹? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮齐帚,結(jié)果婚禮上妒牙,老公的妹妹穿的比我還像新娘。我一直安慰自己对妄,他們只是感情好湘今,可當我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著剪菱,像睡著了一般摩瞎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上琅豆,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天愉豺,我揣著相機與錄音,去河邊找鬼茫因。 笑死蚪拦,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的冻押。 我是一名探鬼主播驰贷,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼洛巢!你這毒婦竟也來了括袒?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤稿茉,失蹤者是張志新(化名)和其女友劉穎锹锰,沒想到半個月后芥炭,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡恃慧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年园蝠,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片痢士。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡彪薛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出怠蹂,到底是詐尸還是另有隱情善延,我是刑警寧澤,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布城侧,位于F島的核電站易遣,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏赞庶。R本人自食惡果不足惜训挡,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望歧强。 院中可真熱鬧,春花似錦为肮、人聲如沸摊册。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽茅特。三九已至,卻和暖如春棋枕,著一層夾襖步出監(jiān)牢的瞬間白修,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工重斑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留兵睛,地道東北人。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓窥浪,卻偏偏與公主長得像祖很,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子漾脂,可洞房花燭夜當晚...
    茶點故事閱讀 45,107評論 2 356

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