java程序員職場(chǎng)全攻略
java程序員職場(chǎng)全攻略
JAVA程序員廣義上是指一群以JAVA為謀生手段的軟件開發(fā)人員。狹義的說,是指擁有SUN公司JAVA認(rèn)證的程序員。以下是學(xué)習(xí)啦小編整理的java程序員職場(chǎng)全攻略,以供大家參考。
java程序員職場(chǎng)全攻略:
監(jiān)視內(nèi)存計(jì)數(shù)器
要監(jiān)視內(nèi)存不足的狀況,請(qǐng)從以下的對(duì)象計(jì)數(shù)器開始: 內(nèi)存信息:
Memory\ Available Bytes Memory\ Pages/sec
Memory\ Available Bytes
如果您懷疑有內(nèi)存泄露,請(qǐng)監(jiān)視 Memory\Available Bytes 和 Memory\ Committed Bytes,以觀察內(nèi)存行為,并監(jiān)視您認(rèn)為可能在泄露內(nèi)存的進(jìn)程的 Process\ Private Bytes、Process\ Working Set 和Process\ Handle Count。如果您懷疑是內(nèi)核模式進(jìn)程導(dǎo)致了泄露,
則還應(yīng)該監(jiān)視 Memory\ Pool Nonpaged Bytes、Memory\ Pool Nonpaged Allocs 和 Process(process_name)\ Pool Nonpaged Bytes。
CPU信息:
Processor\ % Processor Time 獲得處理器使用情況。
也可以選擇監(jiān)視 Processor\ % User Time 和 % Privileged Time 以獲得詳細(xì)信息。
Server Work Queues\ Queue Length 計(jì)數(shù)器會(huì)顯示出處理器瓶頸。隊(duì)列長(zhǎng)度持續(xù)大于 4 則表示可能出現(xiàn)處理器擁塞。
System\ Processor Queue Length 用于瓶頸檢測(cè)
通過使用 Process\ % Processor Time 和 Process\ Working Set
Process\ % Processor Time過程的所有線程在每個(gè)處理器上的處理器時(shí)間總和。
硬盤信息:
Physical Disk\ % Disk Time
Physical Disk\ Avg.Disk Queue Length
例如,包括 Page Reads/sec 和 % Disk Time 及 Avg.Disk Queue Length。如果頁(yè)面讀取操作速率很低,同時(shí) % Disk Time 和 Avg.Disk Queue Length的值很高,則可能有磁盤瓶徑。但是,如果隊(duì)列長(zhǎng)度增加的同時(shí)頁(yè)面讀取速率并未降低,則內(nèi)存不足。
Physical Disk\ % Disk Time
Physical Disk\ Avg.Disk Queue Length
例如,包括 Page Reads/sec 和 % Disk Time 及 Avg.Disk Queue Length。如果頁(yè)面讀取操作速率很低,同時(shí) % Disk Time 和 Avg.Disk Queue Length的值很高,則可能有磁盤瓶徑。但是,如果隊(duì)列長(zhǎng)度增加的同時(shí)頁(yè)面讀取速率并未降低,則內(nèi)存不足。
請(qǐng)觀察 Processor\ Interrupts/sec 計(jì)數(shù)器的值,該計(jì)數(shù)器測(cè)量來自輸入/輸出 (I/O) 設(shè)備的服務(wù)請(qǐng)求的速度。如果此計(jì)數(shù)器的值明顯增加,而系統(tǒng)活動(dòng)沒有相應(yīng)增加,則表明存在硬件問題。
Physical Disk\ Disk Reads/sec and Disk Writes/sec Physical Disk\ Current Disk Queue Length Physical Disk\ % Disk Time LogicalDisk\ % Free Space 測(cè)試磁盤性能時(shí),將性能數(shù)據(jù)記錄到另一個(gè)磁盤或計(jì)算機(jī),以便這些數(shù)據(jù)不會(huì)干擾您正在測(cè)試的磁盤。
可能需要觀察的附加計(jì)數(shù)器包括 Physical Disk\ Avg.Disk sec/Transfer、Avg.Disk Bytes/Transfer,和 Disk Bytes/sec。
Avg.Disk sec/Transfer 計(jì)數(shù)器反映磁盤完成請(qǐng)求所用的時(shí)間。較高的值表明磁盤控制器由于失敗而不斷重試該磁盤。這些故障會(huì)增加平均磁盤傳送時(shí)間。對(duì)于大多數(shù)磁盤,較高的磁盤平均傳送時(shí)間是大于 0.3 秒。
也可以查看 Avg.Disk Bytes/Transfer 的值。值大于 20 KB 表示該磁盤驅(qū)動(dòng)器通常運(yùn)行良好;如果應(yīng)用程序正在訪問磁盤,則會(huì)產(chǎn)生較低的值。例如,隨機(jī)訪問磁盤的應(yīng)用程序會(huì)增加平均 Disk sec/Transfer 時(shí)間,因?yàn)殡S機(jī)傳送需要增加搜索時(shí)間。 Disk Bytes/sec 提供磁盤系統(tǒng)的吞吐率。 決定工作負(fù)載的平衡
要平衡網(wǎng)絡(luò)服務(wù)器上的負(fù)載,需要了解服務(wù)器磁盤驅(qū)動(dòng)器的繁忙程度。使用 Physical Disk\ % Disk Time 計(jì)數(shù)器,該計(jì)數(shù)器顯示驅(qū)動(dòng)器活動(dòng)時(shí)間的百分比。如果 % Disk Time 較高(超過 90%),請(qǐng)檢查 Physical Disk\ Current Disk Queue Length 計(jì)數(shù)器以查看正在等待磁盤訪問的系統(tǒng)請(qǐng)求數(shù)量。等待 I/O 請(qǐng)求的數(shù)量應(yīng)當(dāng)保持在不大于組成物理磁盤的主軸數(shù)的 1.5 到 2 倍。
盡管廉價(jià)磁盤冗余陣列 (RAID) 設(shè)備通常有多個(gè)主軸,大多數(shù)磁盤有一個(gè)主軸。硬件 RAID 設(shè)備在“系統(tǒng)監(jiān)視器”中顯示為一個(gè)物理磁盤;通過軟件創(chuàng)建的 RAID 設(shè)備顯示為多個(gè)驅(qū)動(dòng)器(實(shí)例)。可以監(jiān)視每個(gè)物理驅(qū)動(dòng)器(而不是 RAID)的 Physical Disk 計(jì)數(shù)器,也可以使用 _Total 實(shí)例來監(jiān)視所有計(jì)算機(jī)驅(qū)動(dòng)器的數(shù)據(jù)。
使用 Current Disk Queue Length 和 % Disk Time 計(jì)數(shù)器來檢測(cè)磁盤子系統(tǒng)的瓶頸。如果 Current Disk Queue Length 和 % Disk Time 的值始終較高,可以考慮升級(jí)磁盤驅(qū)動(dòng)器或?qū)⒛承┪募苿?dòng)到其他磁盤或服務(wù)器。
posted @ 2006-01-05 17:05 摩摩茶 閱讀(671) | 評(píng)論 (5) | 編輯
如何分析Analysis中各個(gè)圖表的含義,寫出性能測(cè)試報(bào)告(繼續(xù)增加中) 1:
vuser數(shù):
這個(gè)根據(jù)你選擇的方案不同結(jié)果也不同,如果采用所有vuser同時(shí)運(yùn)行,并且所有vuser都正確執(zhí)行的話,這個(gè)圖沒什么用處。
平均事務(wù)響應(yīng)時(shí)間:
這個(gè)應(yīng)該是關(guān)注最多的,一般來說,這個(gè)圖的理想曲線是這樣(針對(duì)同時(shí)開始vuser):開始增長(zhǎng)較快,中期幾乎不增長(zhǎng),后期逐漸下降(類似發(fā)動(dòng)機(jī)輸出曲線)。比較差的曲線例如:線性增長(zhǎng),波動(dòng)較大的曲線
每秒事務(wù)數(shù):
一般來說,在平均事務(wù)響應(yīng)時(shí)間達(dá)到期望要求的時(shí)候,這個(gè)值越大越好(峰值)
Windows資源/Unix資源:
這些就要看你監(jiān)控哪些東西了(CPU利用率,內(nèi)存使用情況,高速緩沖命中情況等),CPU利用率的話在跑vuser期間最好不要超過80%,否則就是資源瓶頸(我們做Weblogic+Oracle測(cè)試時(shí),oracle主機(jī)cpu利用率沒超過20%,而Weblogic主機(jī)cpu利用率在整個(gè)方案運(yùn)行中期徘徊在90%左右,性能瓶頸在Weblogic中需要優(yōu)化)排除網(wǎng)絡(luò)瓶頸的話,問題一般按下順序:Web服務(wù)器->應(yīng)用服務(wù)器->數(shù)據(jù)庫(kù) 2:
Memory:
內(nèi)存使用情況可能是系統(tǒng)性能中最重要的因素。如果系統(tǒng)“頁(yè)交換”頻繁,說明內(nèi)存不足。“頁(yè)交換”是使用稱為“頁(yè)面”的單位,將固定大小的代碼和數(shù)據(jù)塊從 RAM 移動(dòng)到磁盤的過程,其目的是為了釋放內(nèi)存空間。盡管某些頁(yè)交換使 Windows 2000 能夠使用比實(shí)際更多的內(nèi)存,也是可以接受的,但頻繁的頁(yè)交換將降低系統(tǒng)性能。減少頁(yè)交換將顯著提高系統(tǒng)響應(yīng)速度。要監(jiān)視內(nèi)存不足的狀況,請(qǐng)從以下的對(duì)象計(jì)數(shù)器開始:
Available Mbytes:可用物理內(nèi)存數(shù). 如果Available Mbytes的值很小(4 MB 或更小),則說明計(jì)算機(jī)上總的內(nèi)存可能不足,或某程序沒有釋放內(nèi)存。 Page/sec: 表明由于硬件頁(yè)面錯(cuò)誤而從磁盤取出的頁(yè)面數(shù),或由于頁(yè)面錯(cuò)誤而寫入磁盤以釋放工作集空間的頁(yè)面數(shù)。 一般如果pages/sec持續(xù)高于幾百,那么您應(yīng)該進(jìn)一步研究頁(yè)交換活動(dòng)。有可能需要增加內(nèi)存,以減少換頁(yè)的需求(你可以把這個(gè)數(shù)字乘以4k就得到由此引起的硬盤數(shù)據(jù)流量)。Pages/sec 的值很大不一定表明內(nèi)存有問題,而可能是運(yùn)行使用內(nèi)存映射文件的程序所致。
page read/sec:頁(yè)的硬故障,page/sec的子集,為了解析對(duì)內(nèi)存的引用,必須讀取頁(yè)文件的次數(shù)。閾值為>5. 越低越好。大數(shù)值表示磁盤讀而不是緩存讀。由于過多的頁(yè)交換要使用大量的硬盤空間,因此有可能將導(dǎo)致將頁(yè)交換內(nèi)存不足與導(dǎo)致頁(yè)交換的磁盤瓶徑混淆。因此,在研究?jī)?nèi)存不足不太明顯的頁(yè)交換的原因時(shí),您必須跟蹤如下的磁盤使用情況計(jì)數(shù)器和內(nèi)存計(jì)數(shù)器:
Physical Disk\ % Disk Time
Physical Disk\ Avg.Disk Queue Length
例如,包括 Page Reads/sec 和 % Disk Time 及 Avg.Disk Queue Length。如果頁(yè)面讀取操作速率很低,同時(shí) % Disk Time 和 Avg.Disk Queue Length的值很高,則可能有磁盤瓶徑。但是,如果隊(duì)列長(zhǎng)度增加的同時(shí)頁(yè)面讀取速率并未降低,則內(nèi)存不足。
要確定過多的頁(yè)交換對(duì)磁盤活動(dòng)的影響,請(qǐng)將 Physical Disk\ Avg.Disk sec/Transfer 和 Memory\ Pages/sec 計(jì)數(shù)器的值增大數(shù)倍。如果這些計(jì)數(shù)器的計(jì)數(shù)結(jié)果超過了 0.1,那么頁(yè)交換將花費(fèi)百分之十以上的磁盤訪問時(shí)間。如果長(zhǎng)時(shí)間發(fā)生這種情況,那么您可能需要更多的內(nèi)存。
Page Faults/sec:每秒軟性頁(yè)面失效的數(shù)目(包括有些可以直接在內(nèi)存中滿足而有些需要從硬盤讀取)較page/sec只表明數(shù)據(jù)不能在內(nèi)存的指定工作集中立即使用。 Cache Bytes:文件系統(tǒng)緩存(File System Cache),默認(rèn)情況下為50%的可用物理內(nèi)存。如IIS5.0 運(yùn)行內(nèi)存不夠時(shí),它會(huì)自動(dòng)整理緩存。需要關(guān)注該計(jì)數(shù)器的趨勢(shì)變化 如果您懷疑有內(nèi)存泄露,請(qǐng)監(jiān)視 Memory\ Available Bytes 和 Memory\ Committed Bytes,以觀察內(nèi)存行為,并監(jiān)視您認(rèn)為可能在泄露內(nèi)存的進(jìn)程的 Process\Private Bytes、Process\Working Set 和Process\Handle Count。如果您懷疑是內(nèi)核模式進(jìn)程導(dǎo)致了泄露,則還應(yīng)該監(jiān)視 Memory\Pool Nonpaged Bytes、Memory\ Pool Nonpaged Allocs 和 Process(process_name)\ Pool Nonpaged Bytes。
Pages per second :每秒鐘檢索的頁(yè)數(shù)。該數(shù)字應(yīng)少于每秒一頁(yè)。
Process:
%Processor Time: 被處理器消耗的處理器時(shí)間數(shù)量。如果服務(wù)器專用于sql server,可接受的最大上限是80-85%
Page Faults/sec:將進(jìn)程產(chǎn)生的頁(yè)故障與系統(tǒng)產(chǎn)生的相比較,以判斷這個(gè)進(jìn)程對(duì)系統(tǒng)頁(yè)故障產(chǎn)生的影響。
Work set: 處理線程最近使用的內(nèi)存頁(yè),反映了每一個(gè)進(jìn)程使用的內(nèi)存頁(yè)的數(shù)量。如果服務(wù)器有足夠的空閑內(nèi)存,頁(yè)就會(huì)被留在工作集中,當(dāng)自由內(nèi)存少于一個(gè)特定的閾值時(shí),頁(yè)就會(huì)被清除出工作集。
Inetinfo:Private Bytes:此進(jìn)程所分配的無法與其它進(jìn)程共享的當(dāng)前字節(jié)數(shù)量。如果系統(tǒng)性能隨著時(shí)間而降低,則此計(jì)數(shù)器可以是內(nèi)存泄漏的最佳指示器。
Processor:
監(jiān)視“處理器”和“系統(tǒng)”對(duì)象計(jì)數(shù)器可以提供關(guān)于處理器使用的有價(jià)值的信息,幫助您決定是否存在瓶頸。
%Processor Time:如果該值持續(xù)超過95%,表明瓶頸是CPU。可以考慮增加一個(gè)處理器或換一個(gè)更快的處理器。
%User Time:表示耗費(fèi)CPU的數(shù)據(jù)庫(kù)操作,如排序,執(zhí)行aggregate functions等。如果該值很高,可考慮增加索引,盡量使用簡(jiǎn)單的表聯(lián)接,水平分割大表格等方法來降低該值。 %Privileged Time:(CPU內(nèi)核時(shí)間)是在特權(quán)模式下處理線程執(zhí)行代碼所花時(shí)間的百分比。如果該參數(shù)值和"Physical Disk"參數(shù)值一直很高,表明I/O有問題??煽紤]更換更快的硬盤系統(tǒng)。另外設(shè)置Tempdb in RAM,減低"max async IO","max lazy writer IO"等措施都會(huì)降低該值。
此外,跟蹤計(jì)算機(jī)的服務(wù)器工作隊(duì)列當(dāng)前長(zhǎng)度的 Server Work Queues\ Queue Length 計(jì)數(shù)器會(huì)顯示出處理器瓶頸。隊(duì)列長(zhǎng)度持續(xù)大于 4 則表示可能出現(xiàn)處理器擁塞。此計(jì)數(shù)器是特定時(shí)間的值,而不是一段時(shí)間的平均值。
% DPC Time:越低越好。在多處理器系統(tǒng)中,如果這個(gè)值大于50%并且Processor:% Processor Time非常高,加入一個(gè)網(wǎng)卡可能會(huì)提高性能,提供的網(wǎng)絡(luò)已經(jīng)不飽和。
Thread
ContextSwitches/sec: (實(shí)例化inetinfo 和dllhost 進(jìn)程) 如果你決定要增加線程字節(jié)池的大小,你應(yīng)該監(jiān)視這三個(gè)計(jì)數(shù)器(包括上面的一個(gè))。增加線程數(shù)可能會(huì)增加上下文切換次數(shù),這樣性能不會(huì)上升反而會(huì)下降。如果十個(gè)實(shí)例的上下文切換值非常高,就應(yīng)該減小線程字節(jié)池的大小。
Physical Disk:
%Disk Time %:指所選磁盤驅(qū)動(dòng)器忙于為讀或?qū)懭胝?qǐng)求提供服務(wù)所用的時(shí)間的百分比。如果三個(gè)計(jì)數(shù)器都比較大,那么硬盤不是瓶頸。如果只有%Disk Time比較大,另外兩個(gè)都比較適中,硬盤可能會(huì)是瓶頸。在記錄該計(jì)數(shù)器之前,請(qǐng)?jiān)赪indows 2000 的命令行窗口中運(yùn)行diskperf -yD。若數(shù)值持續(xù)超過80%,則可能是內(nèi)存泄漏。
Avg.Disk Queue Length:指讀取和寫入請(qǐng)求(為所選磁盤在實(shí)例間隔中列隊(duì)的)的平均數(shù)。該值應(yīng)不超過磁盤數(shù)的1.5~2 倍。要提高性能,可增加磁盤。注意:一個(gè)Raid Disk實(shí)際有多個(gè)磁盤。
Average Disk Read/Write Queue Length:指讀取(寫入)請(qǐng)求(列隊(duì))的平均數(shù)。
Disk Reads(Writes)/s: 物理磁盤上每秒鐘磁盤讀、寫的次數(shù)。兩者相加,應(yīng)小于磁盤設(shè)備最大容量。
Average Disksec/Read: 指以秒計(jì)算的在此盤上讀取數(shù)據(jù)的所需平均時(shí)間。
Average Disk sec/Transfer:指以秒計(jì)算的在此盤上寫入數(shù)據(jù)的所需平均時(shí)間。
Network Interface:
Bytes Total/sec :為發(fā)送和接收字節(jié)的速率,包括幀字符在內(nèi)。判斷網(wǎng)絡(luò)連接速度是否是瓶頸,可以用該計(jì)數(shù)器的值和目前網(wǎng)絡(luò)的帶寬比較
監(jiān)視IIS需要的一些計(jì)數(shù)器
Internet Information Services Global:
File Cache Hits %、File CacheFlushes、File Cache Hits
File Cache Hits %是全部緩存請(qǐng)求中緩存命中次數(shù)所占的比例,反映了IIS 的文件緩存設(shè)置的工作情況。對(duì)于一個(gè)大部分是靜態(tài)網(wǎng)頁(yè)組成的網(wǎng)站,該值應(yīng)該保持在80%左右。而File Cache Hits是文件緩存命中的具體值,F(xiàn)ile CacheFlushes 是自服務(wù)器啟動(dòng)之后文件緩存刷新次數(shù),如果刷新太慢,會(huì)浪費(fèi)內(nèi)存;如果刷新太快,緩存中的對(duì)象會(huì)太頻繁的丟棄生成,起不到緩存的作用。通過比較File Cache Hits 和File Cache Flushes 可得出緩存命中率對(duì)緩存清空率的比率。通過觀察它兩個(gè)的值,可以得到一個(gè)適當(dāng)?shù)乃⑿轮?參考IIS 的設(shè)置ObjectTTL 、MemCacheSize 、MaxCacheFileSize)
Web Service:
Bytes Total/sec:顯示W(wǎng)eb服務(wù)器發(fā)送和接受的總字節(jié)數(shù)。低數(shù)值表明該IIS正在以較低的速度進(jìn)行數(shù)據(jù)傳輸。
Connection Refused:數(shù)值越低越好。高數(shù)值表明網(wǎng)絡(luò)適配器或處理器存在瓶頸。
Not Found Errors:顯示由于被請(qǐng)求文件無法找到而無法由服務(wù)器滿足的請(qǐng)求數(shù)(HTTP狀態(tài)代碼404)