2016-05-18 39 views
3

我在Azure中擁有應用服務。它顯示了兩個度量標準,分別爲Average Memory Working SetMemory Working Set。現在,Memory Working Set被定義爲進程中的線程最近觸摸的一組內存頁面。這兩個在門戶網站中顯示的圖表情況如下:Azure中的平均內存工作集和內存工作集

enter image description here enter image description here

現在,有我有三個問題:

  1. 我如何找出什麼是專用我的服務有最大的記憶嗎?限制達到後會發生什麼?
  2. 內存工作集是進程中線程最近觸摸的內存頁數。我認爲這意味着只有當我的代碼有一些內存泄漏,導致其他頁面被加載到內存等時,內存工作集纔會增加。我的問題是,是否有任何外部因素(如請求數)會對內存工作集,即如果請求從200增加到500,內存工作集會增加?如果是,爲什麼?

  3. 平均內存工作集是如何計算的?它是否隨時間計算?看圖,我看到平均內存工作集和內存工作集具有幾乎相似的值。

回答

0

讓我嘗試儘可能多的回答,因爲我可以:

1.A要知道專門的最大的內存,你應該檢查「私有工作集」的過程。我想你可以在任務管理器或KUDU(Azure)的幫助下找到這些信息。做一些谷歌,你會發現它很容易。

1.b一旦達到限制,進程將訪問共享工作集。

2.a內存工作集是'MiBs中應用程序使用的當前內存量'。

2.b如果請求上升了2.5倍,如果引用了新的對象,那麼內存工作集最有可能增加,前提是有可共享的物理內存可以分配。

3.a平均工作記憶集是'應用程序使用的MiB中的平均存儲量'