生成Java線程轉(zhuǎn)儲(chǔ)而不重新啟動(dòng)。
這是我們以編程方式進(jìn)行的操作:http ://pastebin.com/uS5jYpd4
我們使用JMXThreadMXBean和ThreadInfo類:
ThreadMXBean mxBean = ManagementFactory.getThreadMXBean();ThreadInfo[] threadInfos = mxBean.getThreadInfo(mxBean.getAllThreadIds(), 0);...
您也可以kill -QUIT pid在?unix下進(jìn)行操作以將堆棧轉(zhuǎn)儲(chǔ)到標(biāo)準(zhǔn)輸出中。還有jstack來(lái)轉(zhuǎn)儲(chǔ)JVM的堆棧。
我們還具有一個(gè)自動(dòng)化功能,如果應(yīng)用程序的平均負(fù)載高于某個(gè)閾值,則該功能將轉(zhuǎn)儲(chǔ)堆棧:
private long lastcpuTimeMillis;private long lastPollTimeMillis;public void checkLoadAverage() { long Now = System.currentTimeMillis(); long currentcpuMillis = getTotalcpuTimeMillis(); double loadAvg = calcLoadAveragePercentage(Now, currentcpuMillis); if (loadAvg > LOAD_AVERAGE_DUMP_THRESHOLD) {try { dumpStack('Load average percentage is ' + loadAvg);} catch (IOException e) { // Oh well, we tried} } lastcpuTimeMillis = currentcpuMillis; lastPollTimeMillis = Now;}private long getTotalcpuTimeMillis() { long total = 0; for (long id : threadMxBean.getAllThreadIds()) {long cpuTime = threadMxBean.getThreadcpuTime(id);if (cpuTime > 0) { total += cpuTime;} } // since is in nano-seconds long currentcpuMillis = total / 1000000; return currentcpuMillis;}private double calcLoadAveragePercentage(long Now, long currentcpuMillis) { long timeDiff = Now - lastPollTimeMillis; if (timeDiff == 0) {timeDiff = 1; } long cpuDiff = currentcpuMillis - lastcpuTimeMillis; double loadAvg = (double) cpuDiff / (double) timeDiff; return loadAvg;}解決方法
我想創(chuàng)建一個(gè)跟蹤內(nèi)存使用情況和cpu使用情況的線程。
如果應(yīng)用程序達(dá)到較高級(jí)別,我想生成一個(gè)堆轉(zhuǎn)儲(chǔ)或線程轉(zhuǎn)儲(chǔ)。
有沒(méi)有一種方法可以生成線程轉(zhuǎn)儲(chǔ)運(yùn)行時(shí)而無(wú)需重新啟動(dòng)?
相關(guān)文章:
1. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問(wèn)題2. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.3. css - 定位為absolute的父元素中的子元素 如何設(shè)置在父元素的下面?4. java - 請(qǐng)問(wèn)在main方法中寫成對(duì)象名.屬性()并賦值,與直接參參數(shù)賦值輸錯(cuò)誤是什么原因?5. java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統(tǒng)有創(chuàng)建日志文件,不寫入日志信息。6. mysql里的大表用mycat做水平拆分,是不是要先手動(dòng)分好,再配置mycat7. java - socket類服務(wù)端如何防止被ddos攻擊?8. javascript - 圖片鏈接請(qǐng)求一直是pending狀態(tài),導(dǎo)致頁(yè)面崩潰,怎么解決?9. python - beautifulsoup獲取網(wǎng)頁(yè)內(nèi)容的問(wèn)題10. 怎么用css截取字符?
