Linux服務(wù)器性能評估與優(yōu)化_第1頁
Linux服務(wù)器性能評估與優(yōu)化_第2頁
Linux服務(wù)器性能評估與優(yōu)化_第3頁
Linux服務(wù)器性能評估與優(yōu)化_第4頁
Linux服務(wù)器性能評估與優(yōu)化_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、網(wǎng)絡(luò)技術(shù)專業(yè)教學(xué)資源庫Linux服務(wù)器性能評估與優(yōu)化一. Linux服務(wù)器的性能指標1. CPU1.1 CPU狀態(tài)在任意時間內(nèi),CPU有7個狀態(tài):1.idle,表示CPU閑置并等待工作分配。2.user,表示CPU在運行用戶的進程。3.system,表示CPU在執(zhí)行kernel工作。4.nice,表示CPU花費在被nice改變過優(yōu)先級的process上的時間(注意:被nice命令改變優(yōu)先級的process僅指那些nice值為負的process.花費在被nice命令改變優(yōu)先級的任務(wù)上的時間也將被計算在系統(tǒng)和用戶時間內(nèi),因此整個時間加起來可能會超過百分之百) 5.iowait,表示CPU等待IO操

2、作完成的時間 6.irq,表示CPU開銷在響應(yīng)硬中斷上的時間 7.softirq,表示CPU開銷在響應(yīng)軟中斷上的時間. 我們一般用vmstat看到的都是四個狀態(tài):sy,us,id,wa,通過他和load avg結(jié)合,基本可以知道cpu的狀態(tài)。大部分的性能工具用百分比表示CPU時間.當system時間占用很高的時候,你可以用oprofile工具發(fā)現(xiàn)時間都花費在哪里.當iowait很高的時候,你需要分析你的IO設(shè)備,比如磁盤,網(wǎng)卡.1.2 Average loadLoad Average表示cpu正在處理以及等待cpu處理的進程數(shù)之和的統(tǒng)計信息,也就是cpu使用隊列長度的統(tǒng)計信息。滿負載:即CPU

3、 Load = CPU個數(shù)*核數(shù)。一般要保證性能良好,負載最好小于0.7*CPU個數(shù)*核數(shù)。例如:2個4核的cpu, Load Average須< 0.7 * 2 * 4 = 5.6常用命令:1. 查看cpu信息:grep model name /proc/cpuinfo2. top命令應(yīng)該是把每個核的CPU占用率加起來,算一個和,于是多核情況下會top命令會計算出超過100%。load average顯示的三個數(shù)字的時間分別為1分鐘,五分鐘和十五分鐘。3. vmstat也可以查看 Linux代碼 其中,r,b是指處于runnable,blocked的process。所有的runnabl

4、e process形成了一個Run Queue,等待Linux調(diào)度線程的調(diào)度。系統(tǒng)的load是指running和runnable process的總和。 1.3 Interrupts & Context SwitchesInterrupts對應(yīng)vmstat中的in,即被處理過的中斷數(shù)。在系統(tǒng)中,中斷處理器的優(yōu)先級非常高,而且執(zhí)行速度非常快.很多時候,有些中斷處理并不需要很高的處理優(yōu)先級,所以也有soft- interrupt handler.如果有很多的中斷,kernel需要花費大量的時間去處理中斷.可以檢查/proc/interrupts能夠知道中斷發(fā)生在哪個CPU 上.Contex

5、t Switches對于vmstat中的cs,即系統(tǒng)上正在做上下文切換的數(shù)目。 linux內(nèi)核不斷的在不同process間切換,造成一個錯覺,讓人感覺一個單CPU同時處理多個任務(wù).不同process之間的切換稱作 Context Switch.當系統(tǒng)做Context Switch時,CPU保存所有old process的context信息并獲得new process的所有context信息.Context信息包括大量的linux追蹤每個process信息,尤其是一些資源:那些process正在 執(zhí)行,被分配了哪些內(nèi)存,它打開了那些文件,等等.切換Context會觸發(fā)大量的信息移動,這是比較高的

6、開銷.如果可能的話盡量保持很小的 context switches. 2. 內(nèi)存2. 1 內(nèi)存基礎(chǔ)通常包含物理內(nèi)存和虛擬內(nèi)存(virtual Memory),好處是通過物理內(nèi)存(RAM)和部分硬盤空間(SWAP)組合增大了總體的內(nèi)存空間,壞處是由于硬盤部分的虛擬內(nèi)存的性能有限,并且RAM和SWAP之間交換增加了系統(tǒng)的負擔。 Linux代碼 其中,Mem: (1) Total為總的物理內(nèi)存;(2) Used表示總計分配給緩存使用的數(shù)量(即buffers和cache,但可能部分還未實際使用);(3)Free表示未被分配的內(nèi)存;(4)share表示共享內(nèi)存,一般不會使用;(5)buffers:表示系

7、統(tǒng)分配但未被使用的buffers數(shù)量;(6)Cached:表示系統(tǒng)分配但未被使用的cache數(shù)量。后面詳細說明buffer和cache的區(qū)別。-/+ buffers/cache:(1)Used表示實際使用的buffers和cache總量,即實際使用內(nèi)存總量;(2)Free未被使用的buffer,cache及未被分配的內(nèi)存之和,即系統(tǒng)可用內(nèi)存。Swap: 虛擬內(nèi)存。如果系統(tǒng)物理內(nèi)存用完了,但是仍有虛擬內(nèi)存系統(tǒng)仍然可以運行雖然運行很慢;但是如果Swap也用完了,系統(tǒng)就會發(fā)生錯誤,通常會出現(xiàn)"application is out of memory"的錯誤,嚴重時造成系統(tǒng)死鎖。通

8、常Swap空間分配為物理內(nèi)存的2-2.5倍,但也不用完全按照這個標準,如確定內(nèi)存完全夠用也沒必要分配太多,我們線上的服務(wù)器就沒有分配太多的Swap空間。實際可用內(nèi)存:Free(-/+ buffers/cache) = Free(Mem)+buffers(Mem)+Cached(Mem);已分配內(nèi)存:Used(Mem) = Used(-/+ buffers/cache)+ buffers(Mem) + Cached(Mem)物理內(nèi)存總大?。簍otal(Mem) = used(-/+ buffers/cache) + free(-/+ buffers/cache) 2.2 Buffers &

9、; Cache在 Linux 的實現(xiàn)中,文件 Cache 分為兩個層面,一是 Page Cache,另一個 Buffer Cache,每一個 Page Cache 包含若干 Buffer Cache。內(nèi)存管理系統(tǒng)和 VFS 只與 Page Cache 交互,內(nèi)存管理系統(tǒng)負責維護每項 Page Cache 的分配和回收。buffer cache是塊設(shè)備的讀寫緩沖區(qū),更靠近存儲設(shè)備,或者直接就是disk的緩沖區(qū)。磁盤操作有邏輯級(文件系統(tǒng))和物理級(磁盤塊),這兩種緩存分別是緩存邏輯和物理級數(shù)據(jù)的。如我們進行的是文件系統(tǒng)操作,那么文件被緩存到Page Cache,如需要刷新文件的時候,Page C

10、ache將交給Buffer Cache去完成,因為Buffer Cache是緩存磁盤塊的。即直接去操作文件就是使用Page Cache,用dd等命令直接操作磁盤塊,就是buffer cache緩存。 3. 磁盤I/O3.1缺頁中斷磁盤I/O是Linux中最慢的部分。這個主要歸咎于CPU到物理磁盤之間的距離(盤片旋轉(zhuǎn)以及尋道)。Linux 內(nèi)核將硬盤I/O 進行分頁,多數(shù)Linux 系統(tǒng)的默認頁大小為4K.Linux 利用虛擬內(nèi)存極大的擴展了程序地址空間,使得原來物理內(nèi)存不能容下的程序也可以通過內(nèi)存和硬盤之間的不斷交換(把暫時不用的內(nèi)存頁交換到硬盤,把需要的內(nèi)存頁從硬盤讀到內(nèi)存)來贏得更多的內(nèi)存

11、,看起來就像物理內(nèi)存被擴大了一樣。當程序啟動的時候,Linux 內(nèi)核首先檢查 CPU 的緩存和物理內(nèi)存,如果數(shù)據(jù)已經(jīng)在內(nèi)存里就忽略,如果數(shù)據(jù)不在內(nèi)存里就引起一個缺頁中斷(Page Fault),然后從硬盤讀取缺頁,并把缺頁緩存到物理內(nèi)存里。缺頁中斷可分為主缺頁中斷(Major Page Fault)和次缺頁中斷(Minor Page Fault),要從磁盤讀取數(shù)據(jù)而產(chǎn)生的中斷是主缺頁中斷;數(shù)據(jù)已經(jīng)被讀入內(nèi)存并被緩存起來,從內(nèi)存緩存區(qū)中而不是直接從硬盤中讀取數(shù)據(jù)而產(chǎn)生的中斷是次缺頁中斷。上面的內(nèi)存緩存區(qū)起到了預(yù)讀硬盤的作用,內(nèi)核先在物理內(nèi)存里尋找缺頁,沒有的話產(chǎn)生次缺頁中斷從內(nèi)存緩存里找,如果還

12、沒有發(fā)現(xiàn)的話就從硬盤讀取。很顯然,把多余的內(nèi)存拿出來做成內(nèi)存緩存區(qū)提高了訪問速度,這里還有一個命中率的問題,運氣好的話如果每次缺頁都能從內(nèi)存緩存區(qū)讀取的話將會極大提高性能。要提高命中率的一個簡單方法就是增大內(nèi)存緩存區(qū)面積,緩存區(qū)越大預(yù)存的頁面就越多,命中率也會越高。3.2 File Buffer Cache從上面的內(nèi)存緩存區(qū)(也叫文件緩存區(qū) File Buffer Cache)讀取頁比從硬盤讀取頁要快得多,所以 Linux 內(nèi)核希望能盡可能產(chǎn)生次缺頁中斷(從文件緩存區(qū)讀),并且能盡可能避免主缺頁中斷(從硬盤讀), 這樣隨著次缺頁中斷的增多,文件緩存區(qū)也逐步增大,直到系統(tǒng)只有少量可用物理內(nèi)存的時

13、候 Linux 才開始釋放一些不用的頁。我們運行 Linux 一段時間后會發(fā)現(xiàn)雖然系統(tǒng)上運行的程序不多,但是可用內(nèi)存總是很少,這樣給大家造成了 Linux 對內(nèi)存管理很低效的假象,事實上 Linux 把那些暫時不用的物理內(nèi)存高效的利用起來做預(yù)存(內(nèi)存緩存區(qū))。3.3 頁面類型Read pages,只讀頁(或代碼頁),那些通過主缺頁中斷從硬盤讀取的頁面,包括不能修改的靜態(tài)文件、可執(zhí)行文件、庫文件等。當內(nèi)核需要它們的時候把它們讀到內(nèi)存中,當內(nèi)存不足的時候,內(nèi)核就釋放它們到空閑列表,當程序再次需要它們的時候需要通過缺頁中斷再次讀到內(nèi)存。Dirty pages,臟頁,指那些在內(nèi)存中被修改過的數(shù)據(jù)頁,比

14、如文本文件等。這些文件由 pdflush 負責同步到硬盤,內(nèi)存不足的時候由 kswapd 和 pdflush 把數(shù)據(jù)寫回硬盤并釋放內(nèi)存。Anonymous pages,匿名頁,那些屬于某個進程但是又和任何文件無關(guān)聯(lián),不能被同步到硬盤上,內(nèi)存不足的時候由 kswapd 負責將它們寫到交換分區(qū)并釋放內(nèi)存。 二. 性能評估方法1. 評估方法 /proc中的重要信息 :cat /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx) cat /proc/interrupts - 中斷 cat /proc/ioports - 設(shè)備IO端口 cat /p

15、roc/meminfo - 內(nèi)存信息(i.e. mem used, free, swap size) cat /proc/partitions - 所有設(shè)備的所有分區(qū) cat /proc/pci - PCI設(shè)備的信息 cat /proc/swaps - 所有Swap分區(qū)的信息 cat /proc/version - Linux的版本號 2. CPU性能評估2.1 評價標準2.2 監(jiān)控方法2.2.1 uptime Linux代碼 可以明顯的看到當前服務(wù)器的load average 2.2.2 vmstatvmstat監(jiān)控cpu主要關(guān)注proces和cpu:proces:r表示運行和等待cpu時間

16、片的進程數(shù),如果r長時間大于cpu的個數(shù),說明cpu不足;b表示等待資源(如I/O,內(nèi)存交換等)的進程數(shù);cpu: us比較高,表明用戶進程消耗cpu時間多,如果長期大于50%就需要考慮優(yōu)化相關(guān)代碼和算法;us+sy大于85%,說明存在可能存在cpu資源不足;st列來自于一個虛擬機偷取的CPU時間的百分比; 2.2.3 sar Linux代碼 參數(shù)說明:nice列顯示了運行正常進程所消耗的CPU 時間百分比 steal列顯示了在內(nèi)存相對緊張的環(huán)境下pagein強制對不同的頁面進行的steal操作 。 3. 內(nèi)存性能評估3.1 評價標準 3.2 監(jiān)控方法3.2.1 free使用free -m查看

17、內(nèi)存使用情況,具體計算前文及上面的評價標準。如果可用內(nèi)存小于20%考慮增加內(nèi)存。 3.2.2 vmstat關(guān)注memory和swapmemory:swpd列表示切換到內(nèi)存交換區(qū)的內(nèi)存數(shù)量(以k為單位)。如果swpd的值不為0,或者比較大,只要si、so的值長期為0,這種情況下一般不用擔心,不會影響系統(tǒng)性能。free列表示當前空閑的物理內(nèi)存數(shù)量(以k為單位)buff列表示buffers cache的內(nèi)存數(shù)量,一般對塊設(shè)備的讀寫才需要緩沖。cache列表示page cached的內(nèi)存數(shù)量,一般作為文件系統(tǒng)cached,頻繁訪問的文件都會被cached,如果cache值較大,說明cached的文件數(shù)

18、較多,如果此時IO中bi比較小,說明文件系統(tǒng)效率比較好。swap:si列表示由磁盤調(diào)入內(nèi)存,也就是內(nèi)存進入內(nèi)存交換區(qū)的數(shù)量。so列表示由內(nèi)存調(diào)入磁盤,也就是內(nèi)存交換區(qū)進入內(nèi)存的數(shù)量。一般情況下,si、so的值都為0,如果si、so的值長期不為0,則表示系統(tǒng)內(nèi)存不足。需要增加系統(tǒng)內(nèi)存。 3.2.3 sar分析內(nèi)存 Linux代碼 具體參數(shù)看下就明白,需要說明的是:sar -R 2 3中R顯示結(jié)果的單位是pagesize,pagesize的大小看具體機器。 4. I/O性能評估4.1 評價標準 4.2 iostatLinux代碼 Blk_wrtn/s表示每秒寫入的數(shù)據(jù)塊數(shù)。Blk_read表示讀取

19、的所有塊數(shù)。Blk_wrtn表示寫入的所有塊數(shù)。tips: 可以通過Blk_read/s和Blk_wrtn/s的值對磁盤的讀寫性能有一個基本的了解,如果Blk_wrtn/s值很大,表示磁盤的寫操作很頻繁,可以考慮優(yōu)化磁盤或者優(yōu)化程序,如果Blk_read/s值很大,表示磁盤直接讀取操作很多,可以將讀取的數(shù)據(jù)放入內(nèi)存中進行操作。對于這兩個選項的值沒有一個固定的大小,根據(jù)系統(tǒng)應(yīng)用的不同,會有不同的值,但是有一個規(guī)則還是可以遵循的:長期的、超大的數(shù)據(jù)讀寫,肯定是不正常的,這種情況一定會影響系統(tǒng)性能。 4.3 sar Linux代碼 參數(shù)說明: await表示平均每次設(shè)備I/O操作的等待時間(以毫秒為

20、單位)。svctm表示平均每次設(shè)備I/O操作的服務(wù)時間(以毫秒為單位)。%util表示一秒中有百分之幾的時間用于I/O操作。tips:正常情況下svctm應(yīng)該是小于await值的,而svctm的大小和磁盤性能有關(guān),CPU、內(nèi)存的負荷也會對svctm值造成影響,過多的請求也會間接的導(dǎo)致svctm值的增加。await值的大小一般取決與svctm的值和I/O隊列長度以及I/O請求模式,如果svctm的值與await很接近,表示幾乎沒有I/O等待,磁盤性能很好,如果await的值遠高于svctm的值,則表示I/O隊列等待太長,系統(tǒng)上運行的應(yīng)用程序?qū)⒆兟?,此時可以通過更換更快的硬盤來解決問題。%util

21、項的值也是衡量磁盤I/O的一個重要指標,如果%util接近100%,表示磁盤產(chǎn)生的I/O請求太多,I/O系統(tǒng)已經(jīng)滿負荷的在工作,該磁盤可能存在瓶頸。長期下去,勢必影響系統(tǒng)的性能,可以通過優(yōu)化程序或者通過更換更高、更快的磁盤來解決此問題。 5. 網(wǎng)絡(luò)性能評估5.1 評估標準無5.2 ping Linux代碼 adminv015208 $ ping PING (xxxxx.xxxx.xx.xx) 56(84) bytes of data. 64 bytes from 6: icmp_seq=1 ttl=60 time=0.360 ms 64 bytes from 110.75

22、.27.36: icmp_seq=2 ttl=60 time=0.386 ms 64 bytes from 6: icmp_seq=3 ttl=60 time=0.410 ms 64 bytes from 6: icmp_seq=4 ttl=59 time=0.562 ms - ping statistics - 4 packets transmitted, 4 received, 0% packet loss, time 2998ms rtt min/avg/max/mdev = 0.360/0.429/0.562/0.081 ms time顯示了

23、兩臺主機之間的網(wǎng)絡(luò)延時情況,如果此值很大,表示網(wǎng)絡(luò)延遲很大。packet loss表示網(wǎng)絡(luò)丟包率,該值越小,表示網(wǎng)絡(luò)的質(zhì)量越高。5.3 netstat -i檢查網(wǎng)絡(luò)接口狀況Linux代碼 參數(shù)說明:l Iface:表示網(wǎng)絡(luò)設(shè)備的接口名稱l MTU:表示最大傳輸單元,單位字節(jié)l RX-OK/TX-OK:表示已經(jīng)準確無誤地接收/發(fā)送了多少數(shù)據(jù)包l RX-ERR/TX-ERR:表示接收/發(fā)送數(shù)據(jù)包時產(chǎn)生了多少錯誤l RX-DRP/TX-DRP:表示接收/發(fā)送數(shù)據(jù)包時丟棄了多少數(shù)據(jù)包l RX-OVR/TX-OVR:表示由于誤差而遺失了多少數(shù)據(jù)包l Flg:表示接口標記,其中:L:表示該接口是個回環(huán)設(shè)備

24、B:表示設(shè)置了廣播地址M:表示接收所有數(shù)據(jù)包R:表示接口正在運行U:表示接口處于活動狀態(tài)0:表示在該接口上禁用ARPP:表示一個點到點的連接tips:正常情況下,RX-ERR/TX-ERR、RX-DRP/TX-DRP、RX-OVR/TX-OVR的值都應(yīng)該為0,如果這幾個選項的值不為0,并且很大,那么網(wǎng)絡(luò)質(zhì)量肯定有問題,網(wǎng)絡(luò)傳輸性能也一定會下降。當網(wǎng)絡(luò)傳輸存在問題時,可以檢測網(wǎng)卡設(shè)備是否存在故障,如果可能,可以升級為千兆網(wǎng)卡或者光纖網(wǎng)絡(luò),還可以檢查網(wǎng)絡(luò)部署環(huán)境是否合理。5.4 netstat -r檢查系統(tǒng)的路由表信息 Linux代碼 tips: 在網(wǎng)絡(luò)不通,或者網(wǎng)絡(luò)異常時,首先想到的是檢查系統(tǒng)的

25、路由表信息,netstat r的輸出與route命令的輸出結(jié)果一樣。 5.5 sar -n顯示網(wǎng)絡(luò)運行狀態(tài)Linux代碼 參數(shù)說明:l Iface:表示網(wǎng)絡(luò)設(shè)備的接口名稱l rxpck/s:表示每秒鐘接收的數(shù)據(jù)包大小l txpck/s:表示每秒鐘發(fā)送的數(shù)據(jù)包大小l rxbyt/s:表示每秒鐘接收的字節(jié)數(shù)l txbyt/s:表示每秒鐘發(fā)送的字節(jié)數(shù)l rxcmp/s:表示每秒鐘接收的壓縮數(shù)據(jù)包l txcmp/s:表示每秒鐘發(fā)送的壓縮數(shù)據(jù)包l rxmcst/s:表示每秒鐘接收的多播數(shù)據(jù)包tips:利用sar n EDEV 1 2統(tǒng)計網(wǎng)絡(luò)錯誤信息;利用sar -n SOCK 1 2可以統(tǒng)計套接字信息;

26、6. 任務(wù)進程分析6.1 ps -afx 和 pstree -pu查看進程列表詳見:http:/phoenix- 6.2 top查看進程(按M鍵)和執(zhí)行時間(按T鍵)來排序.6.3 ps -aux查看所有進程ps -aux|grep java查找java進程 6.4 使用jps命令查看java進程情況 6.5 traceroute三. JVM監(jiān)控方法1. 相關(guān)說明盡量少的Full GC。Full GC耗時小于40ms,Young GC小于20ms。 2. 相關(guān)工具2.1 線上使用相關(guān)命令我們的應(yīng)用線上沒有配置JAVA_HOME,要是jps,jstat等命令,需要進入opt/taobao/jav

27、a/bin目錄2.1 獲取java應(yīng)用進程線上使用jps時,會發(fā)現(xiàn)每次jps命令獲取到的進程一直在變,無法使用jstat等命令進行分析。(在測試環(huán)境是可以通過jps獲取的) 線上可以使用pstree -pu命令獲取系統(tǒng)的進程樹如下圖所示,7764就是本應(yīng)用的java進程。Linux代碼 |-run.sh(7753,admin)-java(7764)-+-java(7765) | |-java(7766) | |-java(7767) | |-java(7768) | |-java(7769) | |-java(7770) | |-java(7771) | |-java(7772) | |-ja

28、va(7773) | |-java(7774) | |-java(7775) | |-java(7776) | |-java(7777) | |-java(7778) | |-java(7779) | |-java(7797) | |-java(7800) | |-java(7801) | |-java(7804) 2.1 jstat命令說明:一個極強的監(jiān)視VM內(nèi)存工具??梢杂脕肀O(jiān)視VM內(nèi)存內(nèi)的各種堆和非堆的大小及其內(nèi)存使用量。線上如無法使用該命令,可嘗試加上sudo Linux代碼 adminv015213 $ jstat -gcutil 4678 2s S0 S1 E O P YGC YG

29、CT FGC FGCT GCT 99.93 0.00 99.04 32.54 68.77 6 0.877 1 0.056 0.933 0.00 75.19 27.85 32.54 71.80 7 1.007 1 0.056 1.063 0.00 75.19 90.17 32.54 73.36 7 1.007 1 0.056 1.063 65.15 0.00 33.38 35.12 73.83 8 1.150 1 0.056 1.207 參數(shù)說明: S0 Heap上的 Survivor space 0 區(qū)已使用空間的百分比 S1 Heap上的 Survivor space 1 區(qū)已使用空間的百分

30、比 E Heap上的 Eden space 區(qū)已使用空間的百分比 O Heap上的 Old space 區(qū)已使用空間的百分比 P Perm space 區(qū)已使用空間的百分比 YGC 從應(yīng)用程序啟動到采樣時發(fā)生 Young GC 的次數(shù) YGCT 從應(yīng)用程序啟動到采樣時 Young GC 所用的時間(單位秒) FGC 從應(yīng)用程序啟動到采樣時發(fā)生 Full GC 的次數(shù) FGCT 從應(yīng)用程序啟動到采樣時 Full GC 所用的時間(單位秒) GCT 從應(yīng)用程序啟動到采樣時用于垃圾回收的總時間(單位秒)tips: (1)一次Young GC時間 = 1.007 - 0.877 = 0.130 秒 這個時間就太長了,JVM性能不佳 (2)S0和S1的變化可以看出對象創(chuàng)建和Young GC相關(guān)情況 2.2 jmap命令說明:打印出某個java進程(使用pid)內(nèi)存內(nèi)的,所有對象的情況(如:產(chǎn)生那些對象,及其數(shù)量)。 jmap 是一個可以輸出所有內(nèi)存中對象的工具,甚至可以將VM 中的heap,以二進制輸出成文本。使用方法 jmap -histo pid。如

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論