1. sar
創(chuàng)新互聯(lián)公司是專業(yè)的盤錦網(wǎng)站建設(shè)公司,盤錦接單;提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行盤錦網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
每?jī)擅胨⑿乱淮危?總共5次
[root@dbhost01 ~]# sar 2 5
Linux 2.6.32-504.el6.x86_64 (dbhost01) 03/30/2018 _x86_64_ (4 CPU)
02:53:15 PM CPU %user %nice %system %iowait %steal %idle
02:53:17 PM all 0.66 0.00 1.72 0.66 0.00 96.96
02:53:19 PM all 1.34 0.00 3.35 0.80 0.00 94.51
02:53:21 PM all 0.79 0.00 1.59 1.45 0.00 96.17
02:53:23 PM all 0.40 0.00 2.00 0.80 0.00 96.80
02:53:25 PM all 0.66 0.00 1.85 0.79 0.00 96.70
Average: all 0.77 0.00 2.10 0.90 0.00 96.23
2. top
top -a 按照內(nèi)存降序
[root@dbhost01 ~]# top -a
top - 15:00:54 up 6:04, 1 user, load average: 0.31, 0.19, 0.11
Tasks: 306 total, 1 running, 305 sleeping, 0 stopped, 0 zombie
Cpu(s): 7.8%us, 2.4%sy, 0.0%ni, 88.9%id, 0.8%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 4048972k total, 3848576k used, 200396k free, 134844k buffers
Swap: 4194300k total, 1788k used, 4192512k free, 1835360k cached
3. vmstat
vmstat用于顯示虛擬內(nèi)存,內(nèi)核線程,磁盤,系統(tǒng)進(jìn)程, CPU活動(dòng)等統(tǒng)計(jì)信息。
需要安裝sysstat工具。
[root@dbhost01 ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 1788 202508 135064 1835920 0 0 32 26 96 276 1 2 95 1 0
[root@dbhost01 ~]#
[root@dbhost01 ~]# vmstat 2 5
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 1788 202336 135068 1836000 0 0 32 26 97 276 1 2 95 1 0
0 0 1788 202624 135068 1836000 0 0 25 29 4012 6682 0 1 98 1 0
0 0 1788 202624 135072 1836004 0 0 57 87 4003 6685 0 1 98 1 0
1 0 1788 202508 135072 1836004 0 0 57 33 4402 7353 1 1 98 0 0
0 0 1788 202540 135076 1836004 0 0 33 47 4002 6674 0 1 98 1 0
4. lsof(list open files)
[root@dbhost01 ~]# lsof | grep 1521
certmonge 2348 root 16r FIFO 0,8 0t0 15212 pipe
certmonge 2348 root 18r FIFO 0,8 0t0 15218 pipe
gipcd.bin 2754 grid 109u unix 0xffff880139152180 0t0 36936 socket
5. tcpdump
tcpdump -i eth1
15:24:28.777779 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 393080:393596, ack 105, win 148, options [nop,nop,TS val 22996360 ecr 2443327], length 516
15:24:28.777809 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 393080:393596, ack 105, win 148, options [nop,nop,TS val 22996360 ecr 2443327], length 516
15:24:28.778976 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 393596:393968, ack 105, win 148, options [nop,nop,TS val 22996361 ecr 2443327], length 372
15:24:28.779011 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 393596:393968, ack 105, win 148, options [nop,nop,TS val 22996361 ecr 2443327], length 372
15:24:28.779013 IP 192.168.2.82.50990 dbhost01.ssh: Flags [.], ack 393968, win 16652, options [nop,nop,TS val 2443327 ecr 22996360], length 0
15:24:28.779481 IP dbhost02-priv.23602 dbhost01-priv.24271: UDP, length 556
15:24:28.779585 IP dbhost01-priv.24271 dbhost02-priv.23602: UDP, length 80
15:24:28.779909 IP dbhost01-priv.24271 dbhost02-priv.23602: UDP, length 80
15:24:28.780584 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 393968:394724, ack 105, win 148, options [nop,nop,TS val 22996362 ecr 2443327], length 756
15:24:28.780590 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 393968:394724, ack 105, win 148, options [nop,nop,TS val 22996362 ecr 2443327], length 756
15:24:28.780820 IP dbhost01-priv.24271 dbhost02-priv.23602: UDP, length 556
15:24:28.782232 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 394724:395176, ack 105, win 148, options [nop,nop,TS val 22996364 ecr 2443327], length 452
15:24:28.782235 IP dbhost01.ssh 192.168.2.82.50990: Flags [P.], seq 394724:395176, ack 105, win 148, options [nop,nop,TS val 22996364 ecr 2443327], length 452
6.netstat
[root@dbhost01 ~]# netstat -a | grep oracle
unix 2 [ ACC ] STREAM LISTENING 31861 /var/tmp/.oracle/ora_gipc_sdbhost01gridmyracdb-clusterCRFM_SIPC
unix 2 [ ACC ] STREAM LISTENING 33820 /var/tmp/.oracle/sdbhost01DBG_LOGD
unix 2 [ ACC ] STREAM LISTENING 41177 /var/tmp/.oracle/sdbhost01DBG_EVMD
unix 2 [ ACC ] STREAM LISTENING 65106 /var/tmp/.oracle/sAevm
unix 2 [ ACC ] STREAM LISTENING 65108 /var/tmp/.oracle/sSYSTEM.evm.acceptor.auth
7. htop
需要安裝
8. iostat
Total DISK READ: 91.48 K/s | Total DISK WRITE: 45.27 K/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND
4071 be/4 oracle 30.18 K/s 0.00 B/s 0.00 % 4.69 % ora_lmon_orcl1
4117 be/4 oracle 60.36 K/s 15.09 K/s 0.00 % 3.69 % ora_ckpt_orcl1
2989 rt/4 grid 965.71 B/s 0.00 B/s 0.00 % 2.13 % ocssd.bin
4099 be/4 oracle 0.00 B/s 30.18 K/s 0.00 % 0.07 % ora_ckpt_test
2987 rt/4 grid 0.00 B/s 482.86 B/s 0.00 % 0.03 % ocssd.bin
2979 rt/3 root 0.00 B/s 3.77 K/s 0.00 % 0.00 % ologgerd -M -d /g01/grid/app/11.2.0/grid/crf/db/dbhost01
2980 rt/3 root 0.00 B/s 15.09 K/s 0.00 % 0.00 % ologgerd -M -d /g01/grid/app/11.2.0/grid/crf/db/dbhost01
9. iftop(流量監(jiān)控工具)
linux查看日志命令:
tail:
-n是顯示行號(hào);相當(dāng)于nl命令;例子如下:
tail -100f test.log實(shí)時(shí)監(jiān)控100行日志。
tail -n 10 test.log查詢?nèi)罩疚膊孔詈?0行的日志。
tail -n +10 test.log查詢10行之后的所有日志。
head:
跟tail是相反的,tail是看后多少行日志;例子如下:
head -n 10 test.log查詢?nèi)罩疚募械念^10行日志。
head -n -10 test.log查詢?nèi)罩疚募俗詈?0行的其他所有日志。
cat:
tac是倒序查看,是cat單詞反寫;例子如下:
cat -n test.log |grep "debug"查詢關(guān)鍵字的日志。
命令功能:
tail用于顯示指定文件末尾內(nèi)容,不指定文件時(shí),作為輸入信息進(jìn)行處理。常用于查看日志文件后多少行日志信息。
使用tail -f可以查看動(dòng)態(tài)日志文件,tail -f filename可以把filename里最尾部的內(nèi)容顯示在屏幕上,并且不斷刷新,使你看到最新的文件內(nèi)容。
tail -n行數(shù)可以顯示指定行數(shù)信息。
top命令動(dòng)態(tài)地監(jiān)視進(jìn)程活動(dòng)與系統(tǒng)負(fù)載等信息。
使用示例:
效果如下圖:
以上命令輸出視圖中分為兩個(gè)區(qū)域,一個(gè)統(tǒng)計(jì)信息區(qū),一個(gè)進(jìn)程信息區(qū)。
統(tǒng)計(jì)信息區(qū):
第一行信息依次為:系統(tǒng)時(shí)間、運(yùn)行時(shí)間、登錄終端數(shù)、系統(tǒng)負(fù)載(三個(gè)數(shù)值分別為1分鐘、5分鐘、15分鐘內(nèi)的平均值,數(shù)值越小意味著負(fù)載越低)。
第二行信息依次為:進(jìn)程總數(shù)、運(yùn)行中的進(jìn)程數(shù)、睡眠中的進(jìn)程數(shù)、停止的進(jìn)程數(shù)、僵死的進(jìn)程數(shù)。
第三行信息依次為:用戶占用資源百分比、系統(tǒng)內(nèi)核占用資源百分比、改變過(guò)優(yōu)先級(jí)的進(jìn)程資源百分比、空閑的資源百分比等。
第四行信息依次為:物理內(nèi)存總量、內(nèi)存使用量、內(nèi)存空閑量、作為內(nèi)核緩存的內(nèi)存量。
第五行信息依次為:虛擬內(nèi)存總量、虛擬內(nèi)存使用量、虛擬內(nèi)存空閑量、預(yù)加載內(nèi)存量。
進(jìn)程信息區(qū):
按 q 鍵退出監(jiān)控頁(yè)面。
uptime 用于查看系統(tǒng)的負(fù)載信息。
使用示例:
查看系統(tǒng)的負(fù)載信息。
效果如下圖:
輸出說(shuō)明:
當(dāng)前服務(wù)器時(shí)間:11:06:57
當(dāng)前服務(wù)器運(yùn)行時(shí)長(zhǎng):59 min
當(dāng)前用戶數(shù):1 users
當(dāng)前負(fù)載情況:load average: 0.00, 0.04, 0.08(分別取1min,5min,15min的均值)
free用于顯示當(dāng)前系統(tǒng)中內(nèi)存的使用量信息。
命令語(yǔ)法: free [-bkmotV][-s 間隔秒數(shù)]
參數(shù)說(shuō)明:
使用示例:
顯示當(dāng)前系統(tǒng)中內(nèi)存的使用量信息。
效果如下圖:
輸出說(shuō)明:
ifconfig命令用于獲取網(wǎng)卡配置與網(wǎng)絡(luò)狀態(tài)等信息。
使用示例:
獲取網(wǎng)卡配置與網(wǎng)絡(luò)狀態(tài)等信息。
效果如下圖:
輸出說(shuō)明:
第一部分的第一行顯示網(wǎng)卡狀態(tài)信息。
eth0表示第一塊網(wǎng)卡。
UP代表網(wǎng)卡開(kāi)啟狀態(tài)。
RUNNING代表網(wǎng)卡的網(wǎng)線被接上。
MULTICAST表示支持組播。
第二行顯示網(wǎng)卡的網(wǎng)絡(luò)信息。
inet(IP地址):172.16.67.50。
netmask(掩碼地址):255.255.0.0。
broadcast(廣播地址):172.16.255.255。
RX表示接收數(shù)據(jù)包的情況,TX表示發(fā)送數(shù)據(jù)包的情況。
lo表示主機(jī)的回環(huán)網(wǎng)卡,是一種特殊的網(wǎng)絡(luò)接口,不與任何實(shí)際設(shè)備連接,而是完全由軟件實(shí)現(xiàn)。與回環(huán)地址(127.0.0.0/8 或 ::1/128)不同,回環(huán)網(wǎng)卡對(duì)系統(tǒng)顯示為一塊硬件。任何發(fā)送到該網(wǎng)卡上的數(shù)據(jù)都將立刻被同一網(wǎng)卡接收到。
記錄一下自己常用的linux系統(tǒng)命令,方便以后查閱,發(fā)覺(jué)記憶越來(lái)越不行了
找到最耗CPU的java線程ps命令
命令:ps -mp pid -o THREAD,tid,time 或者 ps -Lfp pid
結(jié)果展示:
這個(gè)命令的作用,主要是可以獲取到對(duì)應(yīng)一個(gè)進(jìn)程下的線程的一些信息。 比如你想分析一下一個(gè)java進(jìn)程的一些運(yùn)行瓶頸點(diǎn),可以通過(guò)該命令找到所有當(dāng)前Thread的占用CPU的時(shí)間,也就是這里的最后一列。
比如這里找到了一個(gè)TID : 30834 ,所占用的TIME時(shí)間最高。
通過(guò) printf "%x\n" 30834 首先轉(zhuǎn)化成16進(jìn)制, 繼續(xù)通過(guò)jstack命令dump出當(dāng)前的jvm進(jìn)程的堆棧信息。 通過(guò)Grep命令即可以查到對(duì)應(yīng)16進(jìn)制的線程id信息,很快就可以找到對(duì)應(yīng)最耗CPU的代碼快在哪。
簡(jiǎn)單的解釋下,jstack下這一串線程信息內(nèi)容:
"DboServiceProcessor-4-thread-295" daemon prio=10 tid=0x00002aab047a9800 nid=0x7d9b waiting on condition [0x0000000046f66000]
nid : 對(duì)應(yīng)的linux操作系統(tǒng)下的tid,就是前面轉(zhuǎn)化的16進(jìn)制數(shù)字
tid: 這個(gè)應(yīng)該是jvm的jmm內(nèi)存規(guī)范中的唯一地址定位,如果你詳細(xì)分析jvm的一些內(nèi)存數(shù)據(jù)時(shí)用得上,我自己還沒(méi)到那種程度,所以先放下
top命令
命令:top -Hp pid
結(jié)果顯示:
和前面的效果一下,你可以實(shí)時(shí)的跟蹤并獲取指定進(jìn)程中最耗cpu的線程。 再用前面的方法提取到對(duì)應(yīng)的線程堆棧信息。
判斷I/O瓶頸
mpstat命令
命令:mpstat -P ALL 1 1000
結(jié)果顯示:
注意一下這里面的%iowait列,CPU等待I/O操作所花費(fèi)的時(shí)間。這個(gè)值持續(xù)很高通??赡苁荌/O瓶頸所導(dǎo)致的。
通過(guò)這個(gè)參數(shù)可以比較直觀的看出當(dāng)前的I/O操作是否存在瓶頸
iostat命令
命令: iostat -m -x 1 1000
同樣你可以觀察對(duì)應(yīng)的CPU中的%iowait數(shù)據(jù),除此之外iostat還提供了一些更詳細(xì)的I/O狀態(tài)數(shù)據(jù),比如比較重要的有:
avgqu-sz : The average queue length of the requests that were issued to the device. (磁盤隊(duì)列的請(qǐng)求長(zhǎng)度,正常的話2,3比較好??梢院蚦pu的load一樣的理解)
await : The average time (in milliseconds) for I/O requests issued to the device to be served. (代表一個(gè)I/O操作從wait到完成的總時(shí)間)
svctm和%util都是代表處理該I/O請(qǐng)求花費(fèi)的時(shí)間和CPU的時(shí)間比例。 判斷是否瓶頸時(shí),這兩個(gè)參數(shù)不是主要的
r/s w/s 和 rMB/s wMB/s 都是代表當(dāng)前系統(tǒng)處理的I/O的一些狀態(tài),前者是我們常說(shuō)的tps,后者就是吞吐量。這也是評(píng)價(jià)一個(gè)系統(tǒng)的性能指標(biāo)
pid命令
命令: pidstat -p pid -u -d -t -w -h 1 1000
結(jié)果顯示:
相當(dāng)實(shí)用的一個(gè)命令,可以基于當(dāng)個(gè)進(jìn)程分析對(duì)應(yīng)的性能數(shù)據(jù),包括CPU,I/O,IR , CS等,可以方便開(kāi)發(fā)者更加精細(xì)化的觀察系統(tǒng)的運(yùn)行狀態(tài)。不過(guò)pidstat貌似是在2.6內(nèi)核的一些較新的版本才有,需要安裝sysstat包。
ubuntu下,可以通過(guò)sudo apt-get install sysstat進(jìn)行安裝。
sar命令
命令:sar -x pid 1 1000
sar也可以指定對(duì)應(yīng)的pid,關(guān)注固定的幾個(gè)參數(shù),沒(méi)有pidstat那么強(qiáng)大。 看不到對(duì)應(yīng)的I/O, IR等信息。
sar的功能可以覆蓋mpstat , iostat的相關(guān)功能。
dstat命令
命令:dstat -y --tcp 1 1000
通過(guò)dstat --tcp可以比較方便的看到當(dāng)前的tcp的各種狀態(tài),不需要每次netstat -nat去看
其他命令
netstat -natp : 查看對(duì)應(yīng)的網(wǎng)絡(luò)鏈接,關(guān)注下Recv-Q , Send-Q , State。
lsof -p pid : 查找對(duì)應(yīng)pid的文件句柄
lsof -i : 80 : 查找對(duì)應(yīng)端口被哪個(gè)進(jìn)程占用
lsof /tmp/1.txt :查找對(duì)應(yīng)文件被哪個(gè)進(jìn)程占用
tcpdump / wireshark :抓包分析工具
jstat / jmap / jstack / jps 等一系列的java監(jiān)控命令
最后
如果你想做一些性能調(diào)優(yōu)的工作,一定要善于利用一些工具進(jìn)行關(guān)注相應(yīng)的狀態(tài)。通過(guò)linux命令你可以比較方便的觀測(cè)到CPU , I/O , network等一些比較外圍的狀態(tài), 很多時(shí)候就已經(jīng)可以解決大部分的問(wèn)題。jvm內(nèi)部的一些運(yùn)行狀態(tài)監(jiān)控,得需要借助一些特有的工具進(jìn)行細(xì)粒度的觀測(cè)。
分享題目:linux查看監(jiān)控命令 查看linux監(jiān)聽(tīng)哪些端口
標(biāo)題URL:http://jinyejixie.com/article22/doseejc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開(kāi)發(fā)、外貿(mào)建站、網(wǎng)頁(yè)設(shè)計(jì)公司、小程序開(kāi)發(fā)、服務(wù)器托管、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)