1. 程式人生 > >WebSphere應用伺服器記憶體洩漏

WebSphere應用伺服器記憶體洩漏

引言

記憶體洩漏是比較常見的一種應用程式效能問題,一旦發生,則系統的可用記憶體和效能持續下降;最終將導致記憶體不足(OutOfMemory),系統徹底 宕掉,不能響應任何請求,其危害相當嚴重。同時,Java堆(Heap)中大量的物件以及物件間之複雜關係,導致記憶體洩漏問題的探測和分析均比較困難,採 用相應的輔助工具是很必要的。

WebSphere應用伺服器提供了系列針對記憶體問題的探測和分析診斷工具,這些工具可以幫助使用者進行記憶體問題的及時探測,保證系統在發生OOM之前,使用者可以在無須進行復雜分析的條件下,預知在其部署的應用中是否存在記憶體洩漏的問題。如果確有記憶體洩漏現象發生,WebSphere還提供了相應的工具,可以幫助使用者進行分析診斷,從而找到記憶體洩漏的真正原因。

1. 記憶體洩漏探測和診斷步驟

實踐中,我們可以採用以下的步驟來處理記憶體洩漏的問題:

(1) 首先,在WebSphere中我們啟用實時探測記憶體洩漏工具, WebSphere效能診斷顧問會對記憶體洩漏提前發出警告資訊。

(2) 啟用WebSphere自帶的Tivoli效能檢視器監視系統的JVM使用狀況,確定記憶體洩漏是否正在發生。

(3) 根據需要,生成詳細記憶體回收日誌,使用PMAT工具分析並確定洩漏的時間,週期等。

(4) 生成單個或者多個Heapdump檔案,選用MDD4J進行分析診斷,找到記憶體洩漏的真正原因。

(5) 提交開發部門進行程式碼修復,然後重新部署到WebSphere應用伺服器。

接下來的部分,我們針對每個環節的配置和工具使用進行闡述。

2.WebSphere應用伺服器中記憶體洩漏的探測工具

2.1 效能診斷顧問介紹

效能診斷顧問(Performance and Diagnostic Advisor),在WebSphere應用伺服器6.0.2版本之前稱為執行時效能顧問(Runtime Performance Advisor)。該工具可以週期性的檢查WebSphere的設定,並給出調整的推薦值。自WebSphere應 用伺服器6.0.2版本開始,該工具實現了一種輕量級的記憶體探測機制,可以非常容易的幫助使用者探測是否在系統中存在記憶體洩漏問題,並提前通過日誌和管理控 制臺進行通知。這樣就給使用者以足夠的時間採取必要的措施防止系統宕掉,同時可以收集或生成相關的檔案以進行離線的分析,來查詢洩漏的根本原因。

2.2配置

可以在WebSphere應用伺服器的管理控制檯中啟用效能診斷顧問

(1) 訪問管理控制檯 ->伺服器-> 應用程式伺服器。

(2) 選擇所要配置的伺服器。

(3) 在效能區域,選擇效能和診斷顧問程式配置。

(4) 如圖所示,有兩個Tab, 執行時和配置。區別在於,執行時裡面的內容無須重啟伺服器就可以生效,但下次重啟伺服器的時候,這些配置也會丟失。配置Tab裡面的內容只有在伺服器重啟後才生效,而且配置的內容也會一直存在,除非再次登陸並去掉所選項。

(5)在其他屬性區域,點選效能和診斷建議配置,確保記憶體洩漏規則處於執行狀態(綠色箭頭)。

2.3 檢視洩漏警告資訊

WebSphere效能診斷顧問輸出資訊可以顯示在WebSphere的管理控制檯,並記錄在WebSphere應用伺服器的SystemOut.log日誌檔案裡面。

(1) SystemOut.log日誌

 [8/31/06 13:21:43:545 CST] 00000010 TraceResponse W   TUNE9001W:  Heap

 utilization patterns indicate that you may have a memory leak

Additional explanatory data follows.

Data values for free memory between 8/31/06 1:20 PM and 8/31/06 1:21 PM were

consistently below minimum required percentage.

(2) 管理控制檯

-登陸管理控制檯->故障診斷 ->執行時訊息 ->點選執行時警告

3. Java 虛擬機器概要分析和詳細垃圾回收

進一步檢測是否有記憶體洩漏的發生,以及洩漏發生的時間,週期和速度,我們可以啟用Java虛擬機器中的詳細垃圾回收,然後分析相應的日誌。 WebSphere應 用伺服器6.1使用了Java SDK5.0, 在Window, Linux, AIX, i5/OS,z/Linux 和z/OS上使用了IBM的JAVA虛擬機器, 在Solaris和HP-UX上使用Sun的JVM。Java 虛擬機器概要分析工具介面(Java Virtual Machine Tool Interface,JVMTI)支援從執行應用程式伺服器的 Java 虛擬機器(JVM)收集資訊(如,關於垃圾回收的資料、物件利用和執行緒狀態)並且支援更全面的效能分析。一旦啟用了 JVMTI,可以使用 PMI 定製選項來啟用所選統計資訊以收集特定資料。

3.1啟用 Java 虛擬機器概要分析和詳細垃圾回收配置步驟

配置步驟:

1. 在控制檯導航樹中單擊伺服器 > 應用程式伺服器

2. 單擊選擇所需應用程式伺服器。

3. 在"伺服器基礎結構"下,單擊 Java 和程序管理-> 程序定義。

4. 在"其他屬性"下,單擊 Java 虛擬機器。

5. 選中配置Tab的詳細垃圾回收選項。

6. 在通用 JVM 引數欄位中輸入 -agentlib:pmiJvmtiProfiler。

注: WebSphere6.1中,JVM概要分析介面改為Java Virtual Machine Tool Interface (JVMTI)。之前版本是JVMPI。如果需要JVMPI的時候,也可以此處輸入-XrunpmiJvmpiProfiler。另外,啟用JVMTI接 口對效能影響較大,儘量避免在生產環境中使用。

7.點選應用或者確定。

8. 單擊儲存按鈕。

9.重啟WebSphere應用伺服器。

3.2 GC資料分析工具PMAT

在WebSphere應用伺服器的日誌目錄下,native_stderr.log文 件就是我們需要的記憶體回收分析檔案。我們推薦使用IBM Pattern Modeling and Analysis Tool for Java Garbage Collector 工具,簡稱PMAT。 PMAT工具解析JAVA SDK的詳細記憶體回收(GC)日誌,並提供統計資訊,圖表,分析並推薦Java堆配置。PMAT提供了豐富的圖形介面來顯示Java堆的使用狀況,從而更 輕鬆地判斷是否有記憶體問題發生。該工具可以從IBM的alphaWorks網站下載,只有英文版。

我們可以把GC檔案從伺服器上下載到PMAT所在機器,然後根據WebSphere的平臺選擇開啟相應的GC檔案進行分析。下面是一個GC日誌片斷,手動分析是比較費勁,而且需要深入瞭解JVM相關知識。

<af type="tenured" id="6" timestamp="Tue Sep 05 12:31:59 2006"

intervalms="18633.354">

  <minimum requested_bytes="8208" />

  <time exclusiveaccessms="6.240" />

  <tenured freebytes="12098304" totalbytes="268435456" percent="4" >

    <soa freebytes="51952" totalbytes="255013888" percent="0" />

    <loa freebytes="12046352" totalbytes="13421568" percent="89" />

  </tenured>

  <gc type="global" id="6" totalid="6" intervalms="18699.043">

    <classloadersunloaded count="0" timetakenms="1.598" />

    <refs_cleared soft="233" weak="856" phantom="65" />

    <finalization objectsqueued="455" />

    <timesms mark="165.502" sweep="10.989" compact="0.000" total="178.668"

 />

    <tenured freebytes="169843272" totalbytes="268435456" percent="63" >

      <soa freebytes="157796920" totalbytes="255013888" percent="61" />

      <loa freebytes="12046352" totalbytes="13421568" percent="89" />

    </tenured>

  </gc>

  <tenured freebytes="169834952" totalbytes="268435456" percent="63" >

    <soa freebytes="157788600" totalbytes="255013888" percent="61" />

    <loa freebytes="12046352" totalbytes="13421568" percent="89" />

  </tenured>

  <time totalms="191.943" />

</af>

PMAT在分析GC日誌後,給出一個總結。下圖為例,我們可以看出GC對系統性能的影響,以及完成的垃圾回收次數等,並且我們可以看出工具給出的推薦(Recommendations)顯示系統的Java堆使用情況是持續增加的。

進一步,我們可以檢視GC的詳情,點選Analysis選單,然後選擇Graph View All,我們就可以根據需要選擇所要檢視的曲線。如圖所示,紅色曲線代表已使用記憶體,藍色曲線代表每次垃圾回收後可用的記憶體。已使用記憶體逐漸增加,可用內 存的持續降低表明系統可能存在記憶體洩漏。

4. TPV監視JVM的狀況

另外一種方法是藉助TPV和PMI來實時監視JVM,分析效能曲線來判斷是否有記憶體洩漏的狀況發生。 WebSphere效能監控基礎結構(PMI)和Java虛擬機器概要分析工具介面(JVMTI)可以幫助我們收集系統的效能狀況資料,使用Tivoli效能檢視器(TPV)以圖形的方式顯示這些資料(效能計數器),可以進一步證實是否系統正在發生記憶體洩漏。

4.1 PMI與TPV

PMI 提供WebSphere執行時和應用程式資源行為的一組全面的資料,。例如, PMI 提供資料庫連線池大小、servlet 響應時間、 Enterprise JavaBeans(EJB)方法響應時間、Java 虛擬機器(JVM)垃圾回收時間以及 CPU 使用量等等。使用 PMI 資料,可以識別並修正應用程式伺服器中的效能瓶頸, 還可使用 PMI 資料來監控應用程式伺服器的執行狀況。PMI 資料可以由 Tivoli Performance Viewer(TPV)、其他 Tivoli 工具、您自己的應用程式或第三方工具來監控和分析。TPV 是隨 WebSphere Application Server 一起提供的 PMI 資料圖形檢視器。

Tivoli Performance Viewer(TPV)使得我們可以通過檢視圖表或表格,從而解讀WebSphere的效能監控基礎結構(PMI)資料。

4.2 PMI的配置方法

預設情況下,PMI已經開啟,級別是預設(Default)。配置步驟:

1. 在控制檯導航樹中單擊監視&調整-> 效能監視基礎結構(PMI)。

2. 選擇所要配置的伺服器名字。

3.單擊配置選項卡,這裡可以根據監控內容的需要,來選擇PMI的任一種統計資訊集(無,基本,擴充套件,全部,定製)。我們這裡選擇"定製"。

注:如果在配置選項卡中,則當重新啟動伺服器時應用設定。如果在執行時選項卡中,則立即應用設定。

4.點選定製 -> 在定製監視級別的樹中,選擇配置選項卡,然後點開JVM執行時,可以根據需要,啟用或禁用相應的計數器。

5.儲存並重啟WebSphere伺服器。

4.3 TPV的使用方法

實時檢視 TPV 效能模組的步驟:

(1) 在控制檯導航樹中,單擊監控和調整 -> 效能檢視器 -> 當前活動 -> 伺服器名字)-> 效能模組。

(2) 選中要檢視的每個效能模組,例如JVM執行時。

(3) 單擊檢視模組按鈕。 在頁面的右側會顯示所選效能資料的圖形或切換成表格。注:每個模組有與其關聯的多個計數器。這些計數器會顯示在資料圖形或表格下面的表中。您可以通過選擇或取消選擇計數器旁的複選框,將計數器新增到圖表或表中,或從中除去。

TPV顯示的已使用記憶體的圖形理想情況下應該是鋸齒狀,圖形中每個坡(下降)對應著一次記憶體的垃圾回收(Garbage collection),如下圖已使用記憶體的曲線,顯示的是沒有發生記憶體洩漏的狀況。

如果測試過程中出現如下情況,則有可能發生了記憶體洩漏:

-每次垃圾回收後的已使用記憶體的數值驟增。

-TPV對應的已使用記憶體圖形更接近於階梯(staircase),或者鋸齒形狀嚴重不規則。

-也可以檢視分配的物件數與釋放的物件數之差值,如果這個數值越來越大,則有記憶體洩漏(如果需要檢視物件數,需要啟用JVMTI介面並在PMI中啟用相應的JVM計數器)。

5. 生成Heap dump檔案

WAS6.1中,在使用IBM JDK的平臺上,可以直接使用以下的方法,隨時生成所需的heapdump檔案。如果在效能診斷顧問程式配置裡面選中了"啟用自動堆轉儲收集,則可以自動在WebSphere profile所在的路徑下(例如/opt/IBM/WebSphere/WAS6.1/profiles/AppSrv01)生成heapdump檔案,備使用者進行分析。

在使用IBM SDK的平臺上,例如AIX, Linux和Windows,在啟用了效能診斷顧問工具後,如果探測到有記憶體洩漏發生,WebSphere會自動生成兩個heapdump檔案,供後續分析使用。

我們在任何時候,可以隨時手動生成所需的heap dump檔案。在WAS6.1 profile的bin目錄下,首先執行wsadmin 指令碼客戶端,然後可以呼叫generateHeapDump操作來完成。

關鍵步驟:

1. 找到JVM物件名字。

<wsadmin> set objectName

WebSphere:type=JVM,process=<WebSphere伺服器名字>,node=<節點名字>,*]

2. 對JVM MBean呼叫generateHeapDump操作。

<wsadmin> $AdminControl invoke $objectName generateHeapDump

例如:

[[email protected] bin]# pwd

/opt/IBM/WebSphere/WAS6.1/profiles/AppSrv01/bin

[[email protected] bin]# ./wsadmin.sh -username root -password demo4you

WASX7209I: Connected to process "server1" on node csspvmNode02 using SOAP

connector;  The type of process is: UnManagedProcess

WASX8011W: AdminTask object is not available.

WASX7029I: For help, enter: "$Help help"

wsadmin>set objectName [$AdminControl queryNames

WebSphere:type=JVM,process=server1, node=csspvmNode02,*]

WebSphere:name=JVM,process=server1,platform=proxy,node=csspvmNode02,

j2eeType=JVM,J2EEServer=server1,

version=6.1.0.0,type=JVM,mbeanIdentifier=JVM,cell=csspvmNode02Cell,spec=1.0

wsadmin>$AdminControl invoke $ objectName generateHeapDump

/opt/IBM/WebSphere/WAS6.1/profiles/AppSrv01/./heapdump.20060904.075650.3576.phd

wsadmin>quit

理想情況下,在探測到問題時,儘快生成一個初始的heap dump,然後密切監控記憶體使用情況,等到洩漏了足夠的記憶體的時候,再生成另外一個heap dump,這樣可以對比分析以更準確地找到洩漏的原因。

注: 生成HeapDump檔案的過程是比較耗資源的,所以請只在必須的時候做這樣的操作。

6記憶體洩漏的分析診斷工具-MDD4J

一旦確定了系統中有記憶體洩漏,並且為此生成了heap dump。接下來,我們可以把這些檔案從WebSphere應用伺服器轉移到離線的分析工具所在的機器,進行離線分析診斷。

6.1 工具介紹

MDD4J(Memory Dump Diagnostic for Java)是一個記憶體洩漏分析工具,用於對執行 WebSphere Application Server 的虛擬機器(JVM)所生成的常用記憶體轉儲(堆轉儲)格式進行分析。進行記憶體轉儲(Memory dump)分析的目的,是為了確定 Java 堆中真正導致記憶體洩漏的類和包(classes and packages),這樣可以縮小記憶體洩漏的範圍並找到真正的原因,此分析還確定應用程式 Java 堆佔用量的主要組成部分以及它們之間的擁有關係。

此工具支援下列格式的記憶體轉儲格式有:

-IBM 的PHD格式(heapdump.phd)

-IBM 文字堆轉儲(heapdump.txt)

-HPROF 堆轉儲格式(hprof.txt,主要針對Solaris和HP-UX平臺)

-SVC 轉儲(dump.bin,IBM z-Series上的WebSphere)

該工具提供了兩種分析機制:單轉儲分析以及對兩個轉儲進行的比較分析。

單轉儲分析最常用於在發生 OutOfMemoryException 時自動觸發的記憶體轉儲。此類分析查詢可疑的資料結構,能夠相對快速地提供可疑洩漏物件的分析結果。

比較分析用於對執行記憶體洩漏應用程式期間(即可用 Java 堆記憶體流失時)獲取的兩個記憶體轉儲進行分析。在執行洩漏應用程式的早期觸發的記憶體轉儲被稱為基線記憶體轉儲,發生洩漏的應用程式執行一段時間(以允許洩漏程 度加大)後觸發的記憶體轉儲被稱為主記憶體轉儲。在發生了記憶體洩漏的情況下,主記憶體轉儲可能包含大量物件,而這些物件佔用的 Java 堆空間量會比基線記憶體轉儲大很多。

為了獲得更好的分析結果,建議使主記憶體轉儲的觸發點與基線記憶體轉儲的觸發點在時間上拉開一定距離,從而使總耗用堆大小在兩個觸發點之間大幅增長。

MDD4J的分析結果顯示是基於Web介面的,具有下列特徵:

- 列示分析結果、堆內容、大小和增長幅度的總結

- 列示可疑的資料結構、資料型別和包,它們是造成堆使用量增加(對於比較分析)和堆大小較大(對於單轉儲分析)的主要原因。

- 擁有關係上下文檢視顯示了佔用量主要組成部分之間的關係,以及一組彙總的主要佔用量組成部分所包含的重要資料型別。

- 在堆轉儲內容的互動式樹形檢視中,瀏覽功能能夠顯示堆中任何物件的所有進入引用(在樹中只顯示一個引用,其餘引用單獨顯示)和外出引用,而子物件按到達大小排序。

- 導航功能使您能夠從可疑物件列表轉到所有關係上下文,以及從內容檢視轉到瀏覽檢視。

- 提供了記憶體轉儲中所有物件和資料型別的表檢視,檢視中具有過濾器和經過排序的列。

6.2工具的使用

WebSphere 應用伺服器v6.1的附帶光盤裡面有IBM Support Assistant工具的安裝檔案,執行相應的安裝檔案,MDD4J作為外掛同時被安裝了。

另外,也可以從IBM 技術支援站點http://www-306.ibm.com/software/support/isa/ 下載Support Assistant工具,然後選擇更新程式,獨立安裝MDD4J外掛。

啟動步驟:

(1) 程式->IBM Support Assitant ->IBM Support Assistant v3

(2) 在Support Assistant視窗中,選擇工具 -> 選擇WebSphere版本號。

點選MDD4J的連結,就可以開啟MDD4J工具。在該介面中,我們可以提交單個heap dump檔案進行單轉儲分析,或同時提交兩個檔案進行比較分析。也可以從記憶體轉儲分析結果的下拉選項中選擇以前的分析結果,從而檢視以前的分析內容。

檢視分析進度

單擊"上載並分析"按鈕後,MDD4J開始分析heap dump檔案。在分析執行過程中,登入頁面將自動重新整理,以反映當前正在執行的分析步驟以及整體分析進度。如果該頁面由於某種原因而不重新整理,您可以單擊"刷 新"按鈕以瞭解當前分析狀態。如果您希望停止分析,可以單擊"停止"按鈕,這將在當前正在執行的模組完成後終止分析。

在提交了heap dump檔案,MDD4J顯示分析狀態。

檢視分析結果

分析完成後,Mdd4J頁面將重定向到"分析結果"頁面。"分析結果"頁面包含 4 個選項卡:

"分析總結"選項卡:顯示分析結果總結,並列示下一組用於檢視分析結果的步驟。

"可疑物件"選項卡:它顯示四類可疑物件,即對增長幅度影響最大的資料結構、到達大小顯著流失的資料結構、有大量例項的物件型別以及有大量物件例項的 Java 包。

"察看上下文和內容"選項卡:顯示主記憶體轉儲中 Java 堆佔用量的主要組成部分的擁有關係上下文圖,以及圖中所選節點的內容。

"瀏覽"選項卡:根據對物件引用圖執行的深度優先遍歷,用樹形檢視顯示主記憶體轉儲的所有內容。

其他內容,請參照MDD4J工具附帶的Help文件,該幫助文件有詳細的使用說明,在此不再贅述。

7.小結

IBM提供了一系列的工具輔助使用者進行記憶體問題的監控和分析,在合適的階段選擇合理的工具可以幫助我們輕鬆搞定記憶體洩漏。這裡介紹的工具都是WebSphere附帶或者免費的,IBM Tivoli工具還提供了更強大的監控和診斷功能,例如ITCAM (IBM Tivoli Composite Application Management),可以根據實際情況選用。

相關推薦

WebSphere應用伺服器記憶體洩漏

引言 記憶體洩漏是比較常見的一種應用程式效能問題,一旦發生,則系統的可用記憶體和效能持續下降;最終將導致記憶體不足(OutOfMemory),系統徹底 宕掉,不能響應任何請求,其危害相當嚴重。同時,Java堆(Heap)中大量的物件以及物件間之複雜關係,導致記憶體洩漏問

漫談WebSphere應用伺服器之事務

http://www.cnblogs.com/sunwei2012/archive/2010/01/08/1642295.html 1.事務及事務管理器的基本概念和歷史    說起事務,大部分人都馬上能說出事務的四個屬性:ACID(原子性、一致性、隔離性和永續性)。 

GSoap伺服器記憶體洩漏問題

2008-11-25    寫了個GSoap2.7.10的伺服器小程式,程式碼很簡單:    RecSoapBindingService svr;    int m = svr.bind(0, 80, 100);    if(m<0)    {        soap_print_fault(&

Confluence 6 管理應用伺服器記憶體設定

應用伺服器中的最小和最大 JVM Heap 空間配置將會影響系統的效能。Confluence 管理員可能希望對預設的配置進行修改,基於你係統的負載不同配置情況也會有所不同,請參考頁面 Server Hardware Requirements Guide 頁面中的內容。這個頁面只提供了配置所需要的參考並不是為了

Android開發:淺談MVP模式應用記憶體洩漏

最近博主開始在專案中實踐MVP模式,卻意外發現記憶體洩漏比較嚴重,但卻很少人談到這個問題,促使了本文的釋出,本文假設讀者已瞭解MVP架構。 MVP簡介 M-Modle,資料,邏輯操作層,資料獲取,資料持久化儲存。比如網路操作,資料庫操作 V-Vie

WebSphere 應用伺服器 V6.1 中的 LDAP 身份認證

企業資訊化建設多年,建立了包括人事、財務、市場、銷售、客戶關係管理等一系列的業務和應用資訊系統。這些系統種類繁多並且由不同的應用開發商提供,比如 SAP、金碟的 ERP 軟體,微軟、ORACLE、用友的財務軟體等等。不同的系統和開發商有自己專用的一套使用者儲存和管理系統

C/C++應用程式記憶體洩漏檢查統計方案

  一、前緒   C/C++程式給某些程式設計師的幾大印象之一就是記憶體自己管理容易洩漏容易崩,筆者曾經在一個產品中使用C語言開發維護部分模組,只要產品有記憶體洩漏和崩潰的問題,就被甩鍋“我的程式是C#開發的記憶體都是託管的,C++那邊也沒有記憶體(庇護其好友),肯定是C這邊的問題”

安全預警 | 知名 Web 應用伺服器 Tomcat 資訊洩漏和遠端程式碼執行漏洞

原文地址:https://mp.weixin.qq.com/s/RrD8e3mpl9oRgEaf1JKKdQ?client=tim&ptlang=2052&ADUIN=1835083655&ADSESSION=1505840723&ADTA

WeakReference 在android中的應用 弱引用防止記憶體洩漏

首先我們來看一段程式碼 public classAutoActivityextendsActivity{ Handler handler = new Handler(){ publicvoidhandleMessage(android.os.Message msg)

線上伺服器指令碼記憶體洩漏問題排查

前一陣子在做對輸入法移動端伺服器失敗率監控的過程中使用C++編寫了一個指令碼。由於監控指令碼就是一個死迴圈,希望可以長時間執行。但是沒執行2天多,監控程式就失效了。到虛擬機器上一看原來是監控指令碼已經在虛擬機器上崩潰,通過分析崩潰檔案大致原因是因為記憶體洩漏的問題。然後觀察機器的執行過程發現指令碼每次迴圈

ThreadLocal 內部實現、應用場景和記憶體洩漏

一、什麼是ThreadLocal 首先明確一個概念,那就是ThreadLocal並不是用來併發控制訪問一個共同物件,而是為了給每個執行緒分配一個只屬於該執行緒的變數,顧名思義它是local variable(執行緒區域性變數)。它的功用非常簡單,就是為每

記憶體洩漏檢測vld: 應用程式無法正常啟動(0xc0150002)

做專案的時候發現專案里加了vld這個工具用來檢測記憶體洩漏,就想自己學著用用。 先建了個空的命令列專案,包含標頭檔案vld.h, 把vld.lib和vld_x86.dll拷到工程目錄下(由於我的系統是64位的,所以這掛了,找了好久發現是dll不匹配,so上網找64位的dll

Node.js 應用故障排查手冊 —— 雪崩型記憶體洩漏問題

楔子 實踐篇一中我們也看到了一個比較典型的由於開發者不當使用第三方庫,而且在配置資訊中攜帶了三方庫本身使用不到的資訊,導致了記

[Android]Android記憶體洩漏你所要知道的一切(翻譯)

以下內容為原創,歡迎轉載,轉載請註明 來自天天部落格:http://www.cnblogs.com/tiantianbyconan/p/7235616.html Android記憶體洩漏你所要知道的一切 原文:https://blog.aritraroy.in/everything-

Vc 檢測記憶體洩漏

https://docs.microsoft.com/zh-cn/visualstudio/debugger/finding-memory-leaks-using-the-crt-library?view=vs-2017   啟用記憶體洩漏檢測 檢測記憶體洩漏是 C/c + + 偵錯程式和 C

nodejs web應用伺服器搭建(三):業務的實現+mongo的基礎使用

前言 本章節主要是關注業務實現的,就是持久層資料的CURD操作,和業務處理。 資料: mongoose 文件 其他章節連結: nodejs web應用伺服器搭建(一):跑起你的伺服器 nodejs web應用伺服器搭建(二):express 框架說明(應用) nodej

nodejs web應用伺服器搭建(一):跑起你的伺服器

前言 本章會分四部分來講,在開始教程之前請準備好相關基礎知識 & 文件 JavaScript基礎;AMD概念;ES5 | ES6語法;(這些沒弄清楚估計往下看也看不下去) nodejs 環境搭建 nodejs sdk文件 express 使用方法

tomcat伺服器記憶體不足導致的無法連線伺服器問題解決方法

在亞馬遜上申請的1G記憶體+8G硬碟的測試伺服器出現了連線不上伺服器的問題,重啟tomcat之後報錯如下: Using CLASSPATH:       /usr/tomcat/apache-tomcat-8.5.15/bin/bootstrap.jar:/usr/

記憶體洩漏檢測分析工具

monkey 工具測試應用 可以使用monkey自動化測試工具快速不斷的操作應用。終端指令: // 300 毫秒一個事件,2000個事件,跑10分鐘 adb shell monkey -p com.android.deskclock -v --throttle 300 --ign

Nginx監聽相同埠和IP通過域名分發到不同的應用伺服器

1、Nginx配置檔案如下: #user nobody; worker_processes 3; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log inf