性能測試-應用服務器負載太高問題查找

咱們這個訪問量,徹底不用作性能的,可是出於職業素養考慮,仍是給簡單作了。可是呢,咱們的開發人員吧,都是一些新手吧,老是出現一些很基礎的問題,我在想:若是咱們在淘寶,估計如今要倒閉了的!java

這個問題是最近的一個小web應用,跟進同事測試結果發現的問題,實難想象,一個如此小的應用,會有如此多的基礎性能問題。web

一、慢語句性能

二、應用負載高測試

應用負載高:優化

一、多高算高?線程

以vm 4核這個配置來看,正常沒問題的應用,1如下算正常,1以上的排除外因,應用都仍是有優化空間。code

二、如何查找?進程

抽絲撥繭,一步步分析,定位到代碼層面。開發

本身寫了一個死循環代碼來測試class

public class Test{
	public static void main(String args[]){
		while(true){
			System.out.println(1);
		}
	}
}

分析步驟:

一、top查看CPU使用率及各進程使用率

top命令查看,這個java進程佔用CPU較高

 這個pid進程就是我要找的

經過命令:top -H -p 18523根據pid找出java進程中佔用CPU太高的線程

根據線程id=18523進程使用堆棧信息:jstack -F 18523 >dump.txt

找到java進程耗費CPU較高的線程id查看堆棧信息,看得出是Test這個java文件的第4行有問題

相關文章
相關標籤/搜索