找到最耗CPU的java線(xiàn)程
平湖ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話(huà)聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!
ps命令
命令:ps -mp pid -o THREAD,tid,time 或者 ps -Lfp pid
結(jié)果展示:
這個(gè)命令的作用,主要是可以獲取到對(duì)應(yīng)一個(gè)進(jìn)程下的線(xià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)制的線(xiàn)程id信息,很快就可以找到對(duì)應(yīng)最耗CPU的代碼快在哪。
簡(jiǎn)單的解釋下,jstack下這一串線(xiàn)程信息內(nèi)容:
Java代碼
“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的線(xiàn)程。 再用前面的方法提取到對(duì)應(yīng)的線(xiàn)程堆棧信息。
判斷I/O瓶頸
mpstat命令
命令:mpstat -P ALL 1 1000
結(jié)果顯示:
注意一下這里面的%iowait列,CPU等待I/O操作所花費(fèi)的時(shí)間。這個(gè)值持續(xù)很高通常可能是I/O瓶頸所導(dǎo)致的。
通過(guò)這個(gè)參數(shù)可以比較直觀的看出當(dāng)前的I/O操作是否存在瓶頸
升級(jí)內(nèi)核:
1.這里我用的內(nèi)核是linux-2.6.32.59 版本的,首先下載這個(gè)內(nèi)核
2.下載完畢之后拷貝到Linux中進(jìn)行解壓,tar jxvf linux-2.6.32.59.tar
3.進(jìn)入linux-2.6.32.59 目錄把當(dāng)前內(nèi)核的配置文件拷貝到當(dāng)前目錄下cp /boot/config-2.6.18-238.e15 。/.config 因?yàn)槲耶?dāng)前用的內(nèi)核是linux-2.6.18版本的`
4.在配置視頻所需要的驅(qū)動(dòng) make menuconfig 進(jìn)入之后找到Device Drivers 按回車(chē)進(jìn)入 找到MultiMedia Support先按空格鍵進(jìn)行選中 再按回車(chē)鍵進(jìn)入找到 Video For Linux 按回車(chē)鍵選中 再按空格鍵選中 Video capture adapters 將此選項(xiàng)選中之后按回車(chē)鍵進(jìn)入找到V4L USB devices 按空格鍵選中再按回車(chē)鍵進(jìn)入 找到USB ZC0301[P] ImageProcessor and Control Chip support 按空格鍵選中 再找到《M》GSPCA based webcamsà先按空格鍵選中再按回車(chē)鍵進(jìn)入在最后一項(xiàng)的菜單下選中ZC3XX USB Camera Driver
5.以上配置好之后再次回到頂層菜單,找到General setup-à按回車(chē)鍵進(jìn)入找到[]enable deprecated sysfs features which may confuse old usersp 按空格鍵選中
6.經(jīng)過(guò)4 ,5 兩步驟已經(jīng)將視頻的驅(qū)動(dòng)配置好退出保存
7.下面進(jìn)行編譯 make 此步驟大概需要一個(gè)小時(shí)左右
8.再次進(jìn)行 make modules_install
9.再次進(jìn)行 make install
10.此時(shí)查看將攝像頭插入U(xiǎn)SB 再次查看設(shè)備文件中是否已經(jīng)有了 video0 用ls /dev/ 命令查看
11.如果有說(shuō)明安裝成功
下面是將攝像頭的內(nèi)容顯示出來(lái)
1首先安裝SDL庫(kù)在此下載
2.進(jìn)行解壓tar zxvf SDL-1.2.15.tar
3.進(jìn)入目錄 cd SDL-1.2.15 再進(jìn)入 test目錄 cd test 在test 目錄下配置 。/configure再進(jìn)行make 則會(huì)有許多編譯好的程序隨便運(yùn)行一個(gè)試試
4.在我上傳的資料文件夾中找到servfox-R1_1_3 文件夾進(jìn)入之后首先將Makefile.i386的名字改為 Makefile ,
5.編譯 make
6. 在我上傳的資料文件夾中找到spcaview-20061208 文件夾進(jìn)入之后直接make
7.之后將攝像頭插入到USB 接口首先運(yùn)行servfox-R1_1_3 文件夾中的servfox。/servfox 如果提示出現(xiàn)錯(cuò)誤則要把打印的錯(cuò)誤語(yǔ)句在spcav4l.c中找到將錯(cuò)誤信息刪除知道沒(méi)有錯(cuò)誤出現(xiàn),再次運(yùn)行。/servfox -g –w 127.0.0.1:7070 –d /dev/video0
8. 再次運(yùn)行spcaview 。/ spcaview –g –w 127.0.0.1:7070此時(shí)應(yīng)該在你的虛擬機(jī)上就會(huì)顯示攝像頭拍出來(lái)的視頻注意此時(shí)的項(xiàng)目支持網(wǎng)絡(luò)
在 Linux 中禁用內(nèi)置攝像頭
首先,使用如下命令找到網(wǎng)絡(luò)攝像頭驅(qū)動(dòng):
$ sudo lsmod | grep uvcvideo
示例輸出:
uvcvideo 114688 1
videobuf2_vmalloc 16384 1 uvcvideo
videobuf2_v4l2 28672 1 uvcvideo
videobuf2_common 53248 2 uvcvideo,videobuf2_v4l2
videodev 208896 4 uvcvideo,videobuf2_common,videobuf2_v4l2
media 45056 2 uvcvideo,videodev
usbcore 286720 9 uvcvideo,usbhid,usb_storage,ehci_hcd,ath3k,btusb,uas,ums_realtek,ehci_pci
這里,uvcvideo?是我的網(wǎng)絡(luò)攝像頭驅(qū)動(dòng)。
現(xiàn)在,讓我們禁用網(wǎng)絡(luò)攝像頭。
為此,請(qǐng)編輯以下文件(如果文件不存在,只需創(chuàng)建它):
$ sudo nano?/etc/modprobe.d/blacklist.conf
添加以下行:
##Disable webcam.
blacklist uvcvideo
##Disable webcam?這行不是必需的。為了便于理解,我添加了它。
保存并退出文件。重啟系統(tǒng)以使更改生效。
要驗(yàn)證網(wǎng)絡(luò)攝像頭是否真的被禁用,請(qǐng)打開(kāi)任何即時(shí)通訊程序或網(wǎng)絡(luò)攝像頭軟件,如 Cheese 或 Guvcview。你會(huì)看到如下的空白屏幕。
Cheese 輸出:
Guvcview 輸出:
看見(jiàn)了么?網(wǎng)絡(luò)攝像頭被禁用而無(wú)法使用。
要啟用它,請(qǐng)編輯:
$ sudo nano?/etc/modprobe.d/blacklist.conf
注釋掉你之前添加的行。
##Disable webcam.
#blacklist uvcvideo
保存并關(guān)閉文件。然后,重啟計(jì)算機(jī)以啟用網(wǎng)絡(luò)攝像頭。