日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
解決Java/MySQL性能問題的思路

  千萬別在論壇、群里問,我的機器好慢怎么回事?我的機器內(nèi)存泄露了怎么回事?

創(chuàng)新互聯(lián)從2013年開始,先為東寶等服務(wù)建站,東寶等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為東寶企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

這類大而空的問題一點意義都沒有,其實誰都不知道。你要做的是用下面的思路、方法、工具去定位它

解決問題思路

Java程序問題(運行慢)

先通過 top 查看整個CPU資源使用情況;

通過top -Hp pid查看java進程的每一個線程占用CPU的情況;

如果有一個線程占用CPU過高,有兩種可能:

沒有內(nèi)存了,Java垃圾回收線程不停地運行嘗試回收內(nèi)存,但是每次無法收回,確認:

jstat -gcutil pid 1s 觀察10多秒鐘就能發(fā)現(xiàn)了,看是不是內(nèi)存使用率接近100%了

類似于死循環(huán)(hash沖突攻擊),就是一個線程一直占用一個核的所有CPU資源(其實一個線程總是暫用一個核超過50%的資源都是不太正常的),解決:

用我課堂的checkPerf腳本,定位這個線程具體執(zhí)行的任務(wù)(能具體到某一行),對應(yīng)看代碼解決。

如果有很多線程,每個線程占用的CPU都不多,那基本是正常的。

如果死鎖:

jstack -l pid 多執(zhí)行幾次,統(tǒng)計一下stack中總是在等待哪些鎖,可以對鎖id進行排序統(tǒng)計(sort uniq grep)

上面列出來的都是明顯的瓶頸,最可怕的是哪里都沒有明顯的瓶頸,哪里都要偷一點點資源走,這是可以試試JProfiler這樣更專業(yè)一點的工具,同時要配合自己對業(yè)務(wù)的了解來解決。

Java內(nèi)存的問題,如果有內(nèi)存泄露(就是執(zhí)行完fgc/old gc后不能回收的內(nèi)存不斷地增加):

快速解決:jmap -histo:live pid 來統(tǒng)計所有對象的個數(shù)(String/char/Integer/HashEntry 這樣的對象很多很正常,主要是盯著你們公司的包名下的那些對象)

每隔一分鐘執(zhí)行一次上面的命令,執(zhí)行5次以上,看看你們公司報名下的對象數(shù)量哪個在一直增加,那基本上就是這個對象引起了泄露;

用課堂上的工具HouseMD來動態(tài)監(jiān)控創(chuàng)建這個對象的地方(一般來說很多時候創(chuàng)建了這些對象把他們丟到一個HashMap然后就不管了),分析一下有沒有釋放!

上面的方法實在沒法定位就用: jmap -dump 導(dǎo)出整個內(nèi)存(耗時間,需要很大的內(nèi)存的機器才能對這個導(dǎo)出文件進行分析,會將JVM鎖住一段時間)

在Eclipse的插件EMA中打開這個文件(2G的物理文件需要4G以上的內(nèi)存,5G以上的需要將近20G的內(nèi)存來分析了)

盯著你們公司報名的那些對象,看看引用關(guān)系,誰拿著這些對象沒釋放(是否是必要的)

MySQL 數(shù)據(jù)庫的性能問題

大部分情況下是磁盤IO的問題(索引沒建好、查詢太復(fù)雜);

索引問題的話分析慢查詢?nèi)罩?,explain 他們挨個解決。

偶爾也有數(shù)據(jù)庫CPU不夠的情況,如果并發(fā)高CPU不夠很正常,如果并發(fā)不高,那很可能就是group by/order by/random之類的操作嚴重消耗了數(shù)據(jù)庫的CPU

mysql -e “show full processlist” | grep -v Sleep | sort -rnk6 查看那些SQL語句執(zhí)行的太長

拿出這個SQL語句分析他們的執(zhí)行計劃: explain SQL 然后改進;

分析慢查詢?nèi)罩?,統(tǒng)計top10性能殺手的語句,挨個explain他們,然后改進(具體改進辦法具體分析,這里只談思路)

總結(jié)一下數(shù)據(jù)庫問題就只有這三招:show full processlist/分析慢查詢?nèi)罩?explain(然后建好聯(lián)合索引)


網(wǎng)站題目:解決Java/MySQL性能問題的思路
標題網(wǎng)址:http://m.5511xx.com/article/ccsiioh.html