<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    java技術研究

    統計

    留言簿(3)

    閱讀排行榜

    評論排行榜

    解決Java/MySQL性能問題的思路(轉)

    碰到問題先別急,按下面的思路去套,先一步步地定位問題、細化問題。

    千萬別在論壇、群里問,我的機器好慢怎么回事?我的機器內存泄露了怎么回事?
    這類大而空的問題一點意義都沒有,其實誰都不知道。你要做的是用下面的思路、方法、工具去定位它

    ------------------------------
    解決問題思路

    Java程序問題(運行慢)
    先通過 top 查看整個CPU資源使用情況;
    通過top -Hp pid查看java進程的每一個線程占用CPU的情況;
    如果有一個線程占用CPU過高,有兩種可能:
    沒有內存了,Java垃圾回收線程不停地運行嘗試回收內存,但是每次無法收回,確認:
    jstat -gcutil pid 1s 觀察10多秒鐘就能發現了,看是不是內存使用率接近100%了
    類似于死循環(hash沖突攻擊),就是一個線程一直占用一個核的所有CPU資源(其實一個線程總是暫用一個核超過50%的資源都是不太正常的),解決:
    用我課堂的checkPerf腳本,定位這個線程具體執行的任務(能具體到某一行),對應看代碼解決。

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

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

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

    Java內存的問題,如果有內存泄露(就是執行完fgc/old gc后不能回收的內存不斷地增加):
    快速解決:jmap -histo:live pid 來統計所有對象的個數(String/char/Integer/HashEntry 這樣的對象很多很正常,主要是盯著你們公司的包名下的那些對象)
    每隔一分鐘執行一次上面的命令,執行5次以上,看看你們公司報名下的對象數量哪個在一直增加,那基本上就是這個對象引起了泄露;
    用課堂上的工具HouseMD來動態監控創建這個對象的地方(一般來說很多時候創建了這些對象把他們丟到一個HashMap然后就不管了),分析一下有沒有釋放!
    上面的方法實在沒法定位就用: jmap -dump 導出整個內存(耗時間,需要很大的內存的機器才能對這個導出文件進行分析,會將JVM鎖住一段時間)
    在Eclipse的插件EMA中打開這個文件(2G的物理文件需要4G以上的內存,5G以上的需要將近20G的內存來分析了)
    盯著你們公司報名的那些對象,看看引用關系,誰拿著這些對象沒釋放(是否是必要的)

    MySQL 數據庫的性能問題
    大部分情況下是磁盤IO的問題(索引沒建好、查詢太復雜);
    索引問題的話分析慢查詢日志,explain 他們挨個解決。

    偶爾也有數據庫CPU不夠的情況,如果并發高CPU不夠很正常,如果并發不高,那很可能就是group by/order by/random之類的操作嚴重消耗了數據庫的CPU
    mysql -e "show full processlist" | grep -v Sleep | sort -rnk6 查看那些SQL語句執行的太長
    拿出這個SQL語句分析他們的執行計劃: explain SQL 然后改進;
    分析慢查詢日志,統計top10性能殺手的語句,挨個explain他們,然后改進(具體改進辦法具體分析,這里只談思路)

    總結一下數據庫問題就只有這三招:show full processlist/分析慢查詢日志/explain(然后建好聯合索引)

    posted on 2013-07-02 08:39 小秦 閱讀(325) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲人6666成人观看| 国产卡二卡三卡四卡免费网址| 亚洲乱码在线卡一卡二卡新区| 国产自偷亚洲精品页65页| 国外成人免费高清激情视频| 69视频免费在线观看| 中文字幕在线免费看线人| 青青青亚洲精品国产| 亚洲一卡二卡三卡| 亚洲AV永久无码精品| 久久亚洲高清综合| 国产乱人免费视频| 女人18毛片特级一级免费视频| 国产精品免费网站| 日韩午夜理论免费TV影院| 免费一级毛片在线播放视频| 一个人看的免费观看日本视频www 一个人看的免费视频www在线高清动漫 | 亚洲另类无码专区丝袜| 亚洲最大免费视频网| 亚洲AV中文无码字幕色三| 国产亚洲无线码一区二区| 国外亚洲成AV人片在线观看| 亚洲第一成人影院| 免费国产成人高清在线观看麻豆| 成人免费无码大片a毛片软件| 24小时免费直播在线观看| 色se01短视频永久免费| 亚洲w码欧洲s码免费| 99re免费99re在线视频手机版| 十八禁在线观看视频播放免费| 久久久久女教师免费一区| 久久精品成人免费观看97| 国产精品无码免费专区午夜 | 高清在线亚洲精品国产二区| 国产无遮挡吃胸膜奶免费看| 日本人的色道www免费一区| 吃奶摸下高潮60分钟免费视频| 免费日本黄色网址| 亚洲精品99久久久久中文字幕| 久久精品国产亚洲7777| 亚洲国产精品一区二区久久hs|