第一次接手JAVA項目,在上線后就遇到了網站性能問題.說實話,對于JAVA我不是很了解,同時有點感冒.
客戶內網網站的是用JAVA+TOMCAT6+ORACLE9I開發的.上線后,客戶單位有二百多人,大部分時候有150左右在線.上線后在客戶某些機器上網頁呈現的很快,一點就開了.可是在某些機器上打開網頁要一到二分種.這個是沒辦法忍受的.客戶一個接一個的電話打過來.頭都暈了.
在發布線,內部都做過一些測試的,理論上性能不會如此差的.沒辦法.只能聽客戶和現場的實施人員的描述來判斷.(因為是客戶的內網,機密的,不讓遠程登錄).一開始的判斷是:我以為是剛上線,并發量比較大,在客戶打不開頁面時,又多次刷頁面,從而引起這種現象.所以讓實施人員這樣和客戶解釋. 終于能安靜一會了.
沒想到,剛安靜一會,客戶的電話又打過來了,先是斥責一番,啥也不說,就是我們做的程序出了問題.立馬給解決.汗! 客戶是公司VIP客戶,大家都靠他吃飯的.怎么辦.只能答應.
對于初期的癥狀描述,就那點信息.一時也想不出哪個部分會出問題.那就從頭來排查吧.網站的性能,無非就是 WEB服務器的并發量,數據庫的并發量,IO操作量,及數據的吞吐量等等.
第一先聲明,第一次接觸JAVA的項目,具體技術是啥都不懂.那只好虛心的請教公司這方面所謂的專家們了. TOMCAT的并發量是首先排除掉,公司以前的項目也有用TOMCAT的,沒遇上過這樣的問題. ORACLE數據庫這方面,是由客戶提供的.那可是花錢買的.理論上問題也不大.(相應的服務器的配置及性能那就更不能懷疑了).問題出在哪個地方呢.那是不是IO處理方面有問題呢.
想想網站使用了模板來實現,可是相應的模板都進行了緩存了.有些客戶機訪問每次都很快,也可以排除這方面的問題.
是啥問題啊,真是越想越頭暈.客戶又在異地.我又看到現場.沒辦法,只能在公司布署站點,進行壓力測試,看看近200人的并發量有沒有問題. 最終的結果,也沒什么問題. 那就意味著理論上我們的程序沒什么問題.
現場人員也在按計劃排查客戶現場故障:
1以為是客戶網絡有問題.最后用簡單的測試方法,拿臺本本去撥網線,網絡很快啊.頁面一點即開.
2.網站停了,用靜態頁來測試,慢的機器,還是那樣慢.
得出一個結論:某些用戶的機器有問題.那就和客戶直說吧,沒想到一開口說機器有問題.客戶馬上說所有的機器都是一批的.環境地都是一樣的.再說也不能讓我隨便拿一臺出來測試.要向領導申請的.反正就是一堆近乎不可理遇的回答.和他解釋,回答是我啥都不懂,有很多事要做.你只要給我一個解決方案.但是不能動他的機器. ......... 人要抓狂了. 啥都不想了.只能現場見.
第二天一早就趕到客戶單位.用我的本本上去一試,沒問題,再看一下,上線訪問網站的客戶也不少.再一看客戶的機器,果然是很慢.頭痛啊. 只能仔細的做功課了,自己去詢問一些出問題的細節,并自己操作. 仔細觀察結果.最后發覺只要出現慢的網頁時,網頁最上部都有一個FLASH,可是FLASH上看似內容都出現了(估計是用圖片做了一個背景,上面再放FLASH,具體代碼我也沒看,說實話,沒興趣看這個),可是在FLASH的位置上出現了另一個小圖標,差不多就是FLASH插件沒安裝時的那個小圖片,要等那個小圖片不顯示了,IE就會立即顯示頁面的數據.試了幾個其他差不多的頁面,都是要一二分種出來,SWF都是同一個. 估計是這個原因吧,讓隨同的開發人員立即將FLASH的內容去了,再測.果然,慢的機器也能很快的顯示網頁的內容了.
得出正確的理論結果了.應該是FLASH插件的問題.打開慢的機器的FLASH插件和我的FLASH插件一比對,果然客戶的版本都比較低,最高就是9,可是FLASH9版本的就沒有問題.其他都會有慢的現象.
看看實際剛才的理論是不是成立,讓客戶找了一臺機器安裝了一個FLASH9插件,問題沒有了.立即建議客戶升級FLASH插件,回答是這樣多的機器,不可能升級,要讓程序適應現場環境.無語,立馬將FLASH轉成圖片放上去.(轉成的圖片為了不失真,是很大的,不管了),終于可以解脫了.
誰能想到問題就在這個小小的FLASH上,客戶機是內外網分開運行的.所以機器是同一批的,可是有些配置不大一樣.有些FLASH插件沒有升級過.就造成這樣的很慢的問題.
文章來源于領測軟件測試網 http://www.kjueaiud.com/