判斷服務器CPU的狀況依據以下:
a. 具備相同的core id 的PUC是由同一個core的超線程。
b. 具備相同的physical id 的CPU是同一個CPU封閉的線程或核心
方法1:
物理個CPU個數以下:
如下爲2個CPUphp
[root@Qinglin-A ~]# cat /proc/cpuinfo|grep "physical id"|sort|uniq|wc -l 2
每一個物理CPU中的core的個數(即核數):node
[root@Qinglin-A ~]# cat /proc/cpuinfo |grep "cpu cores"|sort|uniq|wc -l 1
邏輯CPU的個數linux
[root@Qinglin-A ~]# cat /proc/cpuinfo |grep "process"|wc -l 24
方法2:
lscpu命令查看ios
[root@Qinglin-A ~]# lscpu Architecture: x86_64 ==>架構爲64位 CPU op-mode(s): 32-bit, 64-bit ==>32位和64位模式 Byte Order: Little Endian ==>大段小段 CPU(s): 24 ==>CPU線程數 On-line CPU(s) list: 0-23 ==>CPU線程0到23 Thread(s) per core: 2 ==>每一個盒數有多少線程 Core(s) per socket: 6 ==>CPU的盒數 Socket(s): 2 ==>CPU的插槽 NUMA node(s): 2 ==>非統一內在訪問,並不重要 Vendor ID: GenuineIntel ==>CPU廠商 CPU family: 6 ==>CPU的家族系列 Model: 62 ==>CPU的型號 Stepping: 4 ==>步進 CPU MHz: 2600.082 ==>CPU主頻 BogoMIPS: 5199.24 ==>Linux操做系統中衡量計算機處理器運行速度的一種尺度 Virtualization: VT-x ==>是否支持虛擬化 L1d cache: 32K ==>一級緩存32K L1i cache: 32K ==>一級緩存32K L2 cache: 256K ==>二級緩存256k L3 cache: 15360K ==>三級緩存15360k NUMA node0 CPU(s): 0,2,4,6,8,10,12,14,16,18,20,22 ==>NUMA節點0 NUMA node1 CPU(s): 1,3,5,7,9,11,13,15,17,19,21,23 ==>NUMA節點1
查看linux下內存使用狀況,可使用命令free -m。注意此命令在linux有效,在FreeBSD中沒有此命令。nginx
[root@Qinglin-A ~]# free -m total used free shared buffers cached Mem: 15933 13142 2791 0 437 8810 -/+ buffers/cache: 3894 12038 Swap: 16383 10 16373
total:內存總數
used:已經使用的內在數
free:空閒的內存數
shared:多個進程共享的內存總額
-buffers/cache:(已用)的內存數,即used-buffers-cached
+buffers/cache:(可用)的內存數,即free+buffers+cached
結論:
可用內存的計算公式爲:
可用內存=free+buffers+cachaed,即2791+437+8810=12038MB
疑問:
爲何windwos下內存才用了200M不到,可是linux上free纔有232MB可用呢?
實際上是Linux內存機制問題,如下舉例說明,-m的意思是用M個字節來顯示內容。shell
[root@Qinglin-A ~]# free -m total used free shared buffers cached Mem: 15933 13142 2791 0 437 8810 -/+ buffers/cache: 3894 12038 Swap: 16383 10 16373
在第一部分Mem行中有以下參數
total:內存總數,即15933MB
used:已經使用的內存數,即13142MB
free:空閒的內存數,即2791MB
shared:當前已經廢棄不用,老是0
buffers:緩存的內存數,即437MB
cache page:緩存的內存數,即8819MB
其中,內存總數與已使用內存數和空閒內存數的關係是
total(15933M)=used(13142M)+free(232M)
在第二部份內容(-/+buffers/cache)中各參數以下所示:
(-buffers/cache):used 內存數,即3894(指的是第一部分Mem行中的used(13142MB)-buffers(437MB)-cached(8810MB)=3894MB)
(+buffers/cache):free內存數,即12038(指的是第一部分Mem行中的free(2791MB)+buffers(437MB)+cache(8810MB)=12038MB)
-buffers/cache是實實在在用掉的內存
+buffers/cache是實實在在可用的內存
第三部分是指交換分區(swap)分區
補充
爲何第一部分的free會那麼少?從兩個度來講明
角度一:系統角度上講buffers和cache都屬於被使用的,爲何被使用呢?由於buffer和cache都屬於被使用,因此它認爲free只有2791MB,當程序使用
內存時,buffer/cached很快就會被使用
角度二:應用角度來說,主要看used和free爲主。
另外,爲了提升磁盤和內存的存儲效率,還採起兩種cache方式,Buffer cache和Page Cache,前者針對磁盤的塊的讀寫,後者針對文件inode的讀寫。
這些Cachae能有效的縮短I/O系統調用(好比:read(讀),write(寫),getdents(系統調用)vim
一、查看硬盤的信息
如下這是塊21.5G的硬盤緩存
[root@Qinglin-A ~]# fdisk -l Disk /dev/sda: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000295a5 Device Boot Start End Blocks Id System /dev/sda1 * 1 26 204800 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 26 2220 17619968 83 Linux /dev/sda3 2220 2611 3145728 82 Linux swap / Solaris
二、查看磁盤的使用狀況
下面是查看磁盤佔用狀況(-h是human)
bash
[root@Qinglin-A ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 17G 1.7G 15G 11% / tmpfs 935M 0 935M 0% /dev/shm /dev/sda1 194M 34M 151M 19% /boot
下面是查看inode佔用狀況(-i是inode)服務器
[root@Qinglin-A ~]# df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda2 1101600 61466 1040134 6% / tmpfs 239312 1 239311 1% /dev/shm /dev/sda1 51200 39 51161 1% /boot
三、查看磁盤I/O性能
[root@Qinglin-A ~]# iostat -x Linux 2.6.32-431.el6.x86_64 (Qinglin-A) 05/27/2016 _x86_64_ (2 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.01 0.00 0.09 0.08 0.00 99.82 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 0.26 0.05 0.32 0.05 11.38 0.79 33.02 0.00 7.72 4.53 0.17 scd0 0.00 0.00 0.00 0.00 0.04 0.00 8.00 0.00 2.70 2.70 0.00
參數說明
device:設備名稱
rrqm/s:每秒進行merge的寫操做數目,即delta(rmerge)/s
wrqm/s:每秒進行merge的寫操做數目,即delta(wmerge)/s
r/s:每秒完成的讀I/O設備的次數,即delta(rio)/s
w/s:每秒完成的寫I/O設備的次數,即delta(wio)/s
rsec/s:每秒讀扇區數,即delta(rsect)/s
wsec/s:每秒寫扇區數,即delta(wsect)/s
rkB/s:每秒讀K字節數。是rsect/s的一半,由於每扇區大小爲512字節
wkB/s:每秒寫K字節數。是wsect/s的一半
avgrq-sz:平均每次設備I/O操做的數據大小(即扇區),即delta(rsect + wsect)/delta(rio+wio)
avgqu-sz:平均I/O隊列的長度,即delta(aveq)/s/100(除以1000是由於aveq的單位爲毫秒)
await:平均每次設備I/O操做的等待時間(單位:毫秒),即delta(ruse + wuse) /delta(rio+wio)
svtm:平均每次設備I/O操做的服務時間(單位:毫秒),即delta(use)/delta(rio+wi)
% utl:一秒中有百分之多少的時間用於I/O操做,或者說一秒中有多少時間I/O隊列是非空的,即delta(use)/s/100(由於use的單位爲毫秒)
若是%utl 接近100%,說明產生的I/O請求太多了,I/O系統已經滿負荷,該磁盤可能存在瓶頸
若是idle小於70%,I/O的壓力就比較大了,說明讀取進程中有較多的wait。
原由:有時候覺的系統響應很慢,可是沒有跡象形成很慢的緣由。這時候就須要看平均負載了。
負載會反映CPU、磁盤IO等綜合性能。
[root@Qinglin-A ~]# uptime 10:53:00 up 1 day, 23 min, 1 user, load average: 0.01, 0.02, 0.03
10:53:00:代碼當前時間
up 1 day, 23 min:表明系統運行了1天34分鐘
user:表明運行了1個用戶
load average:三個數字,以1分鐘,5分鐘,15分分別代碼平均進程數量。
思考:
load average如何衡量當前系統負載太高呢?
1個CPU單核,這個值必定是1如下,超過1說明這條道路已經跑滿。
2個CPU雙核,這個值必定是4如下,雙核x雙核=4核,超過4,說明這條道路已經跑滿。
1個CPU雙核4線程,這個值必定是8如下,單核4線程+單核雙線程=雙核8線程,若是8,說明這條道路已經跑滿了。
vmstat,是用來監控linux系統的總體性能的工具
vmstat很是全面,能夠觀察系統的進程狀態,內存使用狀況,虛擬內存使用狀況,I/O、中斷、上下文切換、CPU的使用狀況等性能信息
[root@cnCodec_31 ~]# vmstat 1 5 ==>1 5是顯示5行,每行每秒遞增1條最近狀態 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 3740 198748 68680 31246068 0 0 2 8 2 1 1 1 95 4 0 0 0 3740 190560 68684 31253764 0 0 0 24 8119 847 0 0 100 0 0 0 0 3740 187040 68684 31257584 0 0 0 0 8277 784 0 0 100 0 0 0 0 3740 206140 68684 31238596 0 0 0 0 9033 868 0 0 100 0 0 0 0 3740 199336 68684 31246040 0 0 0 0 8280 834 0 0 100 0 0
Procs:
r = 等待運行的進程數
b = 處在非中斷睡眠狀態的進程
w = 被交換出去的可運行的進程數,此數由linux計算得出,但Linux並不耗盡交換空間。
menory:
swpd = 虛擬內存使用的狀況,單位爲KB。
free = 空間的內存,單位爲KB。
buff = 被用來做爲緩存的內存數,單位爲KB。
swap:
si = 從磁盤交換到內存的交換頁數量,單位爲KB。
so = 從內存交換到磁盤的交換頁數量,單位爲KB。
io:
bi = 發送到塊設備的塊數,單位爲塊。
bo = 從內存交換到磁盤的交換頁面數量,單位爲KB。
system:
in = 每秒的中斷數,包括時鐘中斷。
cs = 每秒的環境(上下文)切換次數。
cpu:
按CPU的總使用百分比來顯示。
us = CPU使用時間。
sy = CPU系統使用時間。
id = 閒置時間。
標準狀況下r和b值應該爲:
r < 5 , b ≈ 0
r常常大於3或4,且id常常少於50,表示CPU的負載很重。
bi、bo長期不等於0,表示內存不足
disk 常常不等於0,且在b中的隊列大於2或3,表示io的性能很差。
一、netstat 命令的功能是顯示網絡鏈接、路由表和網絡接口的信息,可讓用戶得知目前都有哪些網絡鏈接正在動做。
下面是它的重要參數,以及詳細的說明文字。
-A:顯示任務失聯的協議控制塊的地址。主要用於調試。
-a:顯示全部套接字的狀態。在通常狀況下不顯示與服務器進程相關聯的套接字。
-i:顯示自動配置接口的狀態。那此在系統初始引導後配置的接口狀態不在輸出之列。
-m:打印網絡存儲器的使用狀況。
-n:打印實際地址,而不是對地址的解釋或顯示主機、網絡名之類的符號。
-r:打印路由選擇表。
-f address:family 會地給出名字的地址簇打印統計數字 和控制塊信息。到目前爲止,它惟 一支持的地址簇是inet
-I interface:表示只打印給出名字的接口狀態。
-p prootocol-name:表示只打印給出名字的協議的統計數字和協議控制塊信息。
-s:打印每一個協議的統計數字。
-t:表示在輸出顯示中用的時間信息代替隊列長度信息。
root@cmnet_lz_148:/# netstat -an Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:53263 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:30004 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN tcp 0 0 223.87.5.148:10050 124.251.55.199:48350 TIME_WAIT tcp 0 0 223.87.5.148:10050 124.251.55.199:52602 TIME_WAIT tcp 0 0 223.87.5.148:10050 124.251.55.199:52950 TIME_WAIT tcp 0 0 223.87.5.148:10050 124.251.55.199:51381 TIME_WAIT tcp 0 0 223.87.5.148:10050 124.251.55.199:47513 TIME_WAIT tcp 0 0 223.87.5.148:10050 124.251.55.199:47160 TIME_WAIT tcp 0 0 223.87.5.148:44973 124.251.55.201:4506 ESTABLISHED
netstat -an參數 state的含義以下所示:
LISTEN:偵聽來自遠方的TCP端口的鏈接請求。
SYS-SENT:在發送鏈接請求後等待匹配的鏈接請求。
SYS-RECEIVED:在收到和發送一個鏈接請求後等待對方鏈接請求的確認。
ESTABLISHED:表明一個打開的鏈接,咱們經常使用此做爲併發數鏈接數。
FIN-WAIT-1:等待遠程TCP鏈接中斷請求,或先前的鏈接中斷請求的確認。
FIN-WAIT-2:從遠程TCP等待鏈接中斷請求。
CLOSSE-WAIT:等待從本地用戶發來的鏈接中斷請求。
CLOSSE:等待遠程TCP對鏈接中斷的確認。
LAST-ACK:等待原來發向遠程TCP的鏈接中斷請求的確認。
TIME-WAIT:等待足夠的時間以確保遠程TCP接收到鏈接中斷請求的確認。
CLOSED:沒有任務鏈接狀態。
實例:查看shell命令組合,用來查看服務器網絡鏈接狀態並彙總,命令以下:
如下是咱們線上環境的狀態
[qinglin@Qinglin-test ~]$ netstat -an|awk '/^tcp/ { ++s[$NF]} END {for (a in s) print a,s[a]}' TIME_WAIT 80123 FIN_WAIT1 483 ESTABLISHED 103 FIN_WAIT2 15821 SYN_RECV 311 CLOSING 95 LAST_ACK 5 LISTEN 10
參數說明:
CLOSED:沒有鏈接是活動的或正在進行的。
LISTEN:服務器在等等進入呼叫。
SYN_RECV:一個鏈接請求已經到達,等待確認。
SYN_SENT:應用已經開始,打開一個鏈接。
ESTABLISHED:正常數據傳輸狀態。它的值 也能夠近似理解爲當前服務器的併發數。
FIN-WAIT1:應用已經開始,打開一個鏈接。
FIN-WAIT2:另外一連已贊成釋放。
ITMED_WAIT:等待全部分組死掉。
CLOSING:兩邊同時嘗試關閉。
TIME_WAIT:另外一連已初始化一個釋放。
LAST_ACK:等待兩全部分組死掉。
二、查看路由表route -n
所顯示的內容UG這行就是系統的默認網關。
[root@Qinglin-Site ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 123.56.224.0 0.0.0.0 255.255.252.0 U 0 0 0 eth1 10.172.128.0 0.0.0.0 255.255.248.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1 172.16.0.0 10.172.135.247 255.240.0.0 UG 0 0 0 eth0 100.64.0.0 10.172.135.247 255.192.0.0 UG 0 0 0 eth0 10.0.0.0 10.172.135.247 255.0.0.0 UG 0 0 0 eth0 0.0.0.0 123.56.227.247 0.0.0.0 UG 0 0 0 eth1
三、跟蹤路由traceroute
[root@Qinglin-Site ~]# traceroute www.baidu.com traceroute to www.baidu.com (115.239.211.112), 30 hops max, 60 byte packets 1 182.92.151.249 (182.92.151.249) 0.897 ms 1.182 ms 1.432 ms
四、域名解析nslookup與dig
nslookup
[root@Qinglin-Site ~]# nslookup > www.qinglin.net Server: 10.202.72.116 Address: 10.202.72.116#53 Non-authoritative answer: Name: www.qinglin.net Address: 123.56.227.214
dig
[root@Qinglin-Site ~]# dig www.qinglin.net ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> www.qinglin.net ;; global options: +cmd ;; Got answer: ;; ->>HEADER<
dig指定DNS查詢
[root@Qinglin-Site ~]# dig @8.8.8.8 www.qinglin.net ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> @8.8.8.8 www.qinglin.net ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<
dig追蹤解析過程
[root@Qinglin-Site ~]# dig www.qinglin.net +trace ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> www.qinglin.net +trace ;; global options: +cmd . 225813 IN NS b.root-servers.net. . 225813 IN NS l.root-servers.net. . 225813 IN NS c.root-servers.net. . 225813 IN NS j.root-servers.net. . 225813 IN NS e.root-servers.net. . 225813 IN NS g.root-servers.net. . 225813 IN NS k.root-servers.net. . 225813 IN NS d.root-servers.net. . 225813 IN NS i.root-servers.net. . 225813 IN NS a.root-servers.net. . 225813 IN NS m.root-servers.net. . 225813 IN NS h.root-servers.net. . 225813 IN NS f.root-servers.net. ;; Received 496 bytes from 10.202.72.116#53(10.202.72.116) in 61 ms net. 172800 IN NS a.gtld-servers.net. net. 172800 IN NS b.gtld-servers.net. net. 172800 IN NS c.gtld-servers.net. net. 172800 IN NS d.gtld-servers.net. net. 172800 IN NS e.gtld-servers.net. net. 172800 IN NS f.gtld-servers.net. net. 172800 IN NS g.gtld-servers.net. net. 172800 IN NS h.gtld-servers.net. net. 172800 IN NS i.gtld-servers.net. net. 172800 IN NS j.gtld-servers.net. net. 172800 IN NS k.gtld-servers.net. net. 172800 IN NS l.gtld-servers.net. net. 172800 IN NS m.gtld-servers.net. ;; Received 490 bytes from 198.41.0.4#53(198.41.0.4) in 215 ms qinglin.net. 172800 IN NS dns21.hichina.com. qinglin.net. 172800 IN NS dns22.hichina.com. ;; Received 180 bytes from 192.42.93.30#53(192.42.93.30) in 253 ms www.qinglin.net. 600 IN A 123.56.227.214 ;; Received 49 bytes from 42.120.221.26#53(42.120.221.26) in 44 ms
在linux 服務器正常啓動後,提供服務時會調用程序,佔用進程。之時候咱們如何查看系統中那些在被調用。
一、ps命令
ps 命令是最基本同時也是很是強大的進程查看命令。使用該命令能夠肯定那些進程正在運行和它所運行的狀態、
進程 是否結束、進程有沒有僵死、那些進程打敗了過多的資源等。總之大部分信息是能夠經過執行該命令獲得
的。PS命令最經常使用來監控後臺進程的工做狀況,由於後臺進程是屏幕、鍵盤這些標準輸入/輸出設備進行通訊的,
若是須要檢測後臺狀況,就須要使用這個命令了。
格式:
其主要選項以下:
-a:顯示系統中全部進程的信息。
-e:顯示全部進程的信息。
-f:顯示進程的全部信息。
-r:只顯示正在運行的進程。
-u:顯示面向用戶的格式(包括用戶名、CPU及內存的使用狀況等信息)。
-x:顯示全部非控制終端上的進程信息。。
-p:顯示由進程ID指定的進程信息。
-t:顯示指定終端上的進程信息。
要對進程進行檢測和控制,首先要了解當前進程的狀況,固然也就是須要查看當前進程的狀態了。經過ps命令查
看進程,根據所顯示的信息能夠了解那個進程正在運行、那個進程被掛起了、進程已運行了多久、進程正在使用
的資源、進程的相對優先級,以及進程的標誌號(PID)。全部這些信息對用戶都有用,以於系統管理員來講優
其重要。要使用ps -aux使命令能夠得到終端上全部用戶的有關進程的全部信息,這個也是平時用得最多的命令
之一。
[root@Qinglin-Site ~]# ps -aux Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 19232 572 ? Ss 2015 0:01 /sbin/init root 2 0.0 0.0 0 0 ? S 2015 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S 2015 0:00 [migration/0] root 4 0.0 0.0 0 0 ? S 2015 1:34 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S 2015 0:00 [migration/0]
USER:表示啓動用戶
PID:表示進程標誌號
%CPU:表示運行該進程佔用CPU的時間與該進程總的運行時間之比。
%MEN:表示該進程佔用內存與總內存之比。
VSZ:表示打敗的虛擬內存大小,以KB爲單位
RSS:爲進程佔用的物理內存值,以KB爲單位
TTY:表示該進程創建時所對應的終端,「?」表示該進程不佔用終端
STAT:表示該進程的運行狀態。包括如下幾種代碼:D:不可中斷的睡眠,H:不可中斷的睡眠,R:就緒(在可運行隊列中);S:睡眠,T:被跟蹤或中止,Z,終止(僵死)的進程,這些進程不存在可是暫時沒法消除,W:沒有足夠的內存分頁可分配,<:高優先級的進程,N:低優先級的進程,L:有內存分頁分配並鎖在內存體內(實時系統或I/O)
START:爲進程開始時間
TIME:爲執行的時間
COMMAND:是對應的命令名
二、TOP命令
top命令可動態顯示服務器的進程信息。top命令和ps 命令的基本做用是相同的,都顯示系統當前進程的狀態。
但top是一個動態顯示過程當中,即用戶能夠經過按鍵來不斷刷新當前狀態。
top - 18:46:14 up 195 days, 5 min, 2 users, load average: 0.68, 0.51, 0.56 Tasks: 102 total, 2 running, 100 sleeping, 0 stopped, 0 zombie Cpu(s): 61.5%us, 2.0%sy, 0.0%ni, 36.2%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st Mem: 1920740k total, 1813968k used, 106772k free, 154040k buffers Swap: 0k total, 0k used, 0k free, 528292k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 15798 nginx 20 0 334m 48m 4164 S 12.3 2.6 1:08.70 php-fpm 15821 nginx 20 0 334m 48m 4164 S 12.0 2.6 0:53.05 php-fpm 15826 nginx 20 0 334m 48m 3884 S 12.0 2.6 0:52.69 php-fpm 15799 nginx 20 0 334m 48m 4184 S 11.6 2.6 0:53.47 php-fpm 15816 nginx 20 0 333m 47m 4188 S 8.6 2.5 0:53.64 php-fpm 15823 nginx 20 0 334m 48m 4240 R 6.0 2.6 0:49.74 php-fpm 15719 nginx 20 0 47236 4984 2400 S 0.3 0.3 0:39.16 nginx 15801 nginx 20 0 334m 48m 4168 S 0.3 2.6 1:03.08 php-fpm
第一行內容依次表示當前時間、系統啓動的時間、當前系統登錄的用戶數、平臺負載。
第二行依次顯示的是全部啓動的、目前運行的、掛起(sleeping)的和無用(Zombie)的進程。
第三行顯示的是CPU的使用狀況,包括系統打敗的比例、用戶使用比例、閒置(Idle)比例。
第四行顯示物理內存的使用狀況、包括可使用的內存、已經內存、空閒內存、緩衝區佔用的內存。
第五行顯示交換分區的使用狀況、包括總的交換分區、使用的、空間的和用於高速緩存的交換分區。
第六行顯示的內容以下:
PID:進程標誌號,是非零正整數
USER:進程全部者的用戶名
PR:進程的優先級別
NI:進行的優先級別數值
VIRT:進程佔用的虛擬內存值
RES:進程佔用的物理內存值
SHR:進程使用的共享內存值
STAT:進程的狀態,其中s表示休眠,R表示正在運行,Z表示僵死狀態,N表示該進程是負數
%CPU:該進程佔用的CP時間
%MEN:該進程佔用的物理內存和總內存的百分比
TIME:該進程啓動後佔用的CPU時間
COMMAND:進程啓動的啓動命令名稱,若是這一行顯示不下,在進程中會有一個完整的命令行。
在top命令使用過程當中,還可使用一些交互的命令一完成其餘參數的功能,這些命令是經過快捷鍵啓動的,格式以下所示:
<空格>:馬上刷新
主要參數以下所示:
P:根據CPU使用的多少進行排序
T:根據時間、累計時間排序。
q:退出top命令
m:切換顯示進程和CPU狀態信息
t:切換顯示進程的CPU狀態信息
c:切換顯示命令名稱和完整命令行
M:根據使用內存的大小進行排序
W:將當前設置寫入 ~./top文件中,這是top配置文件的推薦方法
四、kill與killall命令
kill命令的做用是終止一個進程。其格式以下:
kill [ -s singnal | -p] [ -a ]pid…
它的主要選項以下所示。
-s:指定發送的信號。
-p:模擬發送信息號。
-l:指定詐的名稱列表。
pid:要終止的進程ID號。
signal:表示信號。
kill可能指定的信息送至程序中。預設的信息爲SIGTERM(15),可將指定程序終止。若仍沒法終止該程序,則可使用SIGKILL(9)信息嘗試強制刪除程序。
kill命令的工做原理是,向linux系統的內核發送一個系統操做信號和某個程序的進程標誌號,而後系統內核就能夠對進程標誌號指定的進程進行操做了。
當須要中斷一個前臺進程的時候,一般使用ctrl+c 組合鍵;可是對於一個後臺進程來講,就不是一個組合鍵所能解決的了,這時就須要kill命令。
另外 kill -9 能夠強制殺掉進程,尤爲適用於殭屍進程。
killall命令的做用是經過程序的名字,直接殺死全部進程,這裏簡單介紹一下。若是要殺掉nginx的全部進程,要用kill的話須要執行9次,但若是用killall nginx則能夠
輕鬆地一次性解決問題。另外,pkill能夠在服務器踢人,很方便。
如下是Centos 5.5 添加靜態路徑的方法,手動添加路由的方式以下:
route add -net 172.16.6.0 netmask 255.255.255.0 gw 172.16.2.25
其中route add -net 是Cenos 下添加靜態路由網絡的方式,netmask是網絡段的子網,gw表示下一條地址,其實就是指172.16.6.0的網段的路由能夠經過172.16.2.25出去。
這時臨時的效果,若是服務器重啓則失效,如何能讓其永久生效,則要寫下面的內容。
[root@Qinglin-Test1 ~]# vim /etc/sysconfig/network-scripts/route-eth0 172.16.6.0/24 via 172.16.2.25
寫入上述信息後,它會一直生效。在Centos 下查看路由表的方式不少,netstat -rn 或route -n 都可。