成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Java進(jìn)程將CPU或負(fù)載拉高及快速定位腳本-創(chuàng)新互聯(lián)

可能同學(xué)經(jīng)常會(huì)遇到生產(chǎn)環(huán)境下的某臺(tái)跑Java的服務(wù)器,在剛發(fā)布時(shí)的時(shí)候一切都很正常,在運(yùn)行一段時(shí)間后就出現(xiàn)CPU占用很高或負(fù)載飆高等現(xiàn)象,好一點(diǎn)的負(fù)載或CPU一天比一天高,差的情況,就是隨機(jī)進(jìn)行抖動(dòng),后又恢復(fù)正常,給運(yùn)維及開發(fā)同學(xué)帶來了不少困擾。當(dāng)然,出現(xiàn)此問題時(shí),后續(xù)要如何改進(jìn),諸如:代碼上線前要進(jìn)行review、相關(guān)強(qiáng)弱依賴服務(wù)隔離/降級(jí)等、單元測(cè)試、回歸測(cè)試、SQL上線審核、基礎(chǔ)及業(yè)務(wù)監(jiān)控、相關(guān)流程制度等。

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、婁煩ssl等。為成百上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的婁煩網(wǎng)站制作公司

若CPU使用率或負(fù)載飆高,且持續(xù)時(shí)間較長,網(wǎng)上也有大量的排查步驟

方法一

1.使用top定位占用CPU高的進(jìn)程PID

top

2.獲取線程信息

ps -mp PID ?-o THREAD,tid,time | sort -rn?

3.將需要的線程ID轉(zhuǎn)換為16進(jìn)制格式

printf "%x\n" tid

4.打印線程的堆棧信息

jstack pid ?|grep ?tid ?#這里的tid就是步驟3生成的 十六進(jìn)制格式的tid

方法二(推薦)

可快速定位thread及thread的cpu使用率

#!/bin/bash #?@Function #?Find?out?the?most?cpu?consumed?threads?of?java,and?print?the?stack?trace?of?these?threads. # #?@Usage #???$./javacpu?-h # PROG=`basename?$0` usage(){ cat?<<EOF Usage:?${PROG}?[OPTION]?... Find?out?the?highest?cpu?consumed?threads?of?java,and?print?the?stack?of?these?threads. Example:?${PROG}?-c?10 Options: -p,--pid????find?out??highest?cpu?consumed?threads?from?the?specifed?java?process, default?from?all?java?process. -c,--count???set?the?thread?count?to?show,default?is?5 -h,--help????display?this?help?and?exit EOF exit?$1 } ARGS=`getopt?-n?"$PROG"?-a?-o?c:p:h?-l?count:,pid:,help?--?"$@"?` [?$??-ne?0?]?&&?usage?1 eval?set?--?"${ARGS}" while?true;do case?"$1"?in -c|--count) count="$2" shift?2 ;; -p|--pid) pid="$2" shift?2 ;; -h|--help) usage ;; --) shift break ;; esac done count=${count:-10} redEcho(){ [?-c?/dev/stdout?]?&&{ #?if?stdout?is?console,turn?on?color?output. echo??-ne?"\033[1;31m" echo?-n?"$@" echo?-e?"\033[0m" ? }?||?echo?"$@" } ##?check?jstack?cmd if?!?which?jstack?&>?/dev/null;?then [?-n?"$JAVA_HOME"?]?&&?[?-f?"$JAVA_HOME/bin/jstack"?]?&&?[?-x?"$JAVA_HOME/bin/jstack"?]?&&{ export?PATH="$JAVA_HOME/bin:$PATH" }?||?{ redEcho?"Error:jstack?nof?found?on?PATH?and?JAVA_HOME!" exit?1 } fi uuid=`date?+%s`_${RANDOM}_$$ cleanupWhenExit(){ rm?/tmp/${uuid}_*?&>?/dev/null } trap?"cleanupWhenExit"?EXIT printStackOfThread(){ while?read?threadLine?;?do pid=`echo?${threadLine}?|?awk?'{print?$1}'` threadId=`echo?${threadLine}?|?awk?'{print?$2}'` threadId0x=`printf?%x?${threadId}` user=`echo?${threadLine}??|?awk?'{print?$3}'` pcpu=`echo?${threadLine}???|?awk?'{print?$5}'` jstackFile=/tmp/${uuid}_${pid} [?!?-f?"${jstackFile}"??]?&&?{ jstack?${pid}?>?${jstackFile}?||{ redEcho?"Fail?to?jstack?java?process?${pid}!" rm?${jstackFile} continue } } redEcho?"The?stack?of?busy(${pcpu}%)?thread(${threadId}/0x${htreadId0x}) of?java?process(${pid})?of?user(${user}):" sed?"/nid=0x${threadId0x}/,/^$/p"?-n?${jstackFile} done } [?-z?"${pid}"?]?&&?{ ps?-Leo?pid,lwp,user,comm,pcpu?--no-headers|awk?'$4=="java"{print?$0}'?|sort?-k5?-r?-n?|head?--lines?"${count}"?|?printStackOfThread }?||?{ ps?-Leo?pid,lwp,user,comm,pcpu?--no-headers?|awk?-v?"pid=${pid}"?'$1==pid,$4=="java"{print?$0}'?|?sort?-k5?-r?-n?|head?--lines?"${count}"?|?printStackOfThread }

方法三(針對(duì)Java服務(wù)器的load負(fù)載隨機(jī)抖動(dòng)情況)

#!/usr/bin/env?python import?os import?time,?datetime import?threading #?desc:?when?system?loadavg?1?min?load?lt?10,then?dump?java?jstack def?load_stat(): loadavg?=?{} f?=?open("/proc/loadavg") info?=?f.read().split() f.close() loadavg['lavg_1']?=?info[0] loadavg['lavg_5']=?info[1] loadavg['lavg_15']=?info[2] start_time?=?datetime.datetime.strptime(str(datetime.datetime.now().date())?+?'00:00',?'%Y-%m-%d%H:%M') curr_time?=?datetime.datetime.now() end_time?=?datetime.datetime.strptime(str(datetime.datetime.now().date()?+?datetime.timedelta(days=2))?+?'23:59',?'%Y-%m-%d%H:%M') if?(start_time?<=?curr_time??<=?end_time?)?: if?float(loadavg['lavg_1'])?>=?11: pid?=?os.popen("jps?|grep?-v?Jps|awk?'{print?$1}'").read() cmd?=?"jstack"?+?"?"?+?pid stack?=?os.popen(cmd).read() tm?=?time.strftime("%Y-%m-%d_%H-%M-%S",?time.localtime()) timeslog?=?'java_stack_'?+?tm?+?r'.txt' log_f?=?open(timeslog,?'w') log_f.write(stack) log_f.close() cmd_2="ps?-mp?"?+?pid.strip('\n')?+?"?-o?THREAD,tid,time?|?sort?-rn" top_tid_info=os.popen(cmd_2).read() cpu_tid_logs='tid_cpu_'?+?tm?+?r'.txt' log_f2?=?open(cpu_tid_logs,'w') log_f2.write(top_tid_info) log_f2.close() threading.Timer(5,?load_stat).start() else: threading.Timer(5,?load_stat).start() else: exit #return?loadavg load_stat()

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

分享文章:Java進(jìn)程將CPU或負(fù)載拉高及快速定位腳本-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://jinyejixie.com/article40/disjeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、動(dòng)態(tài)網(wǎng)站、App設(shè)計(jì)、網(wǎng)站制作、響應(yīng)式網(wǎng)站、外貿(mào)網(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í)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
苗栗市| 古蔺县| 湟中县| 区。| 彭山县| 扎鲁特旗| 永宁县| 和田县| 亳州市| 隆安县| 合作市| 柯坪县| 天峻县| 府谷县| 五指山市| 普兰县| 金川县| 得荣县| 晋宁县| 金川县| 安阳市| 鄂托克前旗| 丰城市| 新平| 佛山市| 盐城市| 深泽县| 团风县| 台东县| 内乡县| 游戏| 滁州市| 康定县| 平泉县| 大田县| 西昌市| 阿瓦提县| 诸暨市| 双城市| 额济纳旗| 辰溪县|