2013-02-11 45 views

回答

1

您可以使用server_report函數。

查看例如http://gwan.ch/source/report.c

+0

我在問內存使用我們所做的腳本,而不是使用自己的內存。 – csw 2013-02-12 02:58:34

+0

這真的取決於你的malloc和多少個並行連接。當GWAN啓動時,您可以在日誌中獲取每個主機/虛擬主機上的信息,但沒有「簡單」的方式(如果不是不可能的話)獲取servlet庫上的信息。當然,您可以將您的servlet單獨分離到一臺主機中,並從GWAN日誌中獲取它。但那隻會是servlet佔用的內存。然後,您可以調用Linux操作系統來獲取進程內存,在servlet開始時,在所有malloc完成之後,在開始釋放某些內容之前再次詢問,然後計算差異。 – 2013-02-12 09:47:59

+0

好的,謝謝你的迴應。如果你運行ab測試,看看?report.c,RAM會增加,不會回來。我錯了嗎 ? – csw 2013-02-13 06:41:14

0

測定由G-WAN腳本(無論是處理程序或servlet)所消耗的內存,您將不得不考慮兩件事情:

  1. 代碼大小(見gwan.log文件的轉儲它的MD5一起校驗)
  2. 數據大小(這取決於你的代碼,以便它只能在運行報告)

正如保羅提出的建議,你可以查閱一下每一個的malloc()/釋放calloc()/的strdup()等,但你會錯過任何內存由G-WAN,系統或第三方庫調用使用。

工作者線程堆棧在需要時也會動態增長...因此,除非您知道自己在做什麼,否則沒有明顯的方法可以精確檢查任何給定腳本使用的內存量。

相關問題