2、壓力測試;
壓力測試無疑是測量系統性能中最常采用的方式,根據定義的性能主旨對系統進行壓力測試,以一定系統是否滿足性能要求,同時也可以根據壓力測試的效果來分析系統的瓶頸,進而進行對應的調優,可用于做壓力測試的工具還是不少的,像loadrunner、jmeter等等,不過壓力測試這個話題實在太大了,不在這里展開去講了,不過我也不怎么懂就是,呵呵。
分析系統性能瓶頸
根據測量系統性能的效果,多數是可以分析出系統性能的瓶頸,同時還可以結合像jvm堆棧、jprofiler、系統日志等來進行進一步確鑿定,另外也可以根據性能調優人員的閱歷,例如可以去了解開發人員是否采用了不相宜的數據結構等。
簡單說一個線程分析的例子:
借助kill -3 pid來獲取到目前jvm的線程堆棧信息,特別需要關注的是里面wait for monitor這樣的線程,這種線程是指在等待鎖的線程,等待一兩分鐘后再次kill -3 pid,看看這些wait for monitor的線程的變化狀態,這對于分析線程中是否存在不合理的競爭過高的鎖的分析是非常主要的。
這一步無疑也是性能調優過程中最難的一步了,分析系統性能瓶頸這種基礎只能結合實際例子來講了,準確在后續抽取一兩個例子來進行講解。
性能調優
在分析出系統性能的瓶頸后,其實這一步相對來說還好做些,當然,需要建立在對軟硬件知識都有很好的深入了解的基礎上,在這里列舉一些對照稀有的性能調優的手段,多數是抄來或google來的,自己在這方面的閱歷還不多,欲望大家多加指示,:)
Redhat Linux內核
Redhat linux內核版本升級到2。6,2。6和2。4的差別還是很多的,例如對epoll的支持、NPTL的采用;epoll的支持對于java而言也是很主要的,在高并發的狀態下nio是否采用epoll還是有挺大的差別的;而NPTL的采用對于多線程次序而言更是極為主要。
另外需要關注像linux的File Handles是多少.network buffer是多少、MTU是多少、Memory Page size是多少等等。
【NextPage】JVM
JVM調優的文章相對來說對照多,大家需要了解的主要是-Xms÷-Xmx、并行GC、-XX:MaxPermSize÷-XX:MaxNewSize、-XX:ThreadStackSize、NIO采用epoll等等。
簡單的列這兩個,其實性能調優的手段還有非常的多,例如簡單的增加CPU、買更快速度的硬盤、增加內存、提升網絡帶寬等這些從硬件角度下手的方式,還有像數據庫調優、應用服務器調優等等。
暫時就寫這么些了,以后列一些具體的例子來寫,那樣更為清晰些,這樣的話更多的是講述一下過程,可以大概了解下做性能調優應該去學習的知識點,^_^,也歡迎有閱歷的同學們貢獻出一些實例的分享。
文章來源于領測軟件測試網 http://www.kjueaiud.com/