監視 Azure App Service 中的應用程式
Azure App Service 會在 Azure 入口網站中為 Web 應用程式、行動和 API 應用程式提供內建的監視功能。
您可以在 Azure 入口網站中檢閱應用程式和 App Service 方案的配額和計量,並根據計量來設定警示和自動調整規則。
了解配額
App Service 中裝載的應用程式都必須遵守其可用資源的某些「限制」。 限制是由與應用程式相關聯的 App Service 方案所定義。
注意
App Service 的免費和共用 (預覽) 服務方案均為基本層,在與其他 App Service 應用程式相同的 Azure 虛擬機器上執行。 某些應用程式可能屬於其他客戶。 這些階層僅用於開發與測試。
如果應用程式裝載於「免費」或「共用」方案中,則應用程式可用資源的限制是由配額所定義。
如果應用程式裝載於「基本」、「標準」或「進階」方案中,則其可用資源的限制是由 App Service 方案的大小 (小、中、大) 和執行個體計數 (1、2、3,以此類推) 所設定。
免費或共用應用程式的配額如下︰
Quota | 描述 |
---|---|
CPU (短期) | 此應用程式在 5 分鐘間隔內允許的 CPU 數量。 此配額會每 5 分鐘重設一次。 |
CPU (天) | 此應用程式在 1 天內允許的 CPU 總量。 此配額會每隔 24 小時在午夜 (UTC) 重設一次。 |
記憶體 | 此應用程式允許的記憶體總量。 |
頻寬 | 此應用程式在 1 天內允許的連出頻寬總量。 此配額會每隔 24 小時在午夜 (UTC) 重設一次。 |
Filesystem | 允許的儲存體總量。 |
對於裝載在基本、標準和進階方案上的應用程式而言,檔案系統是唯一適用的配額。
如需有關不同 App Service SKU 可用特定配額、限制和功能的詳細資訊,請參閱 Azure 訂用帳戶服務限制。
強制配額
如果應用程式超過 CPU (短期)、CPU (天) 或頻寬配額,則應用程式會停止,直到重設配額為止。 在此期間,所有連入要求都會導致 HTTP 403 錯誤。
如果超出應用程式的記憶體配額,則應用程式會暫時停止。
如果超過檔案系統配額時,任何寫入作業都將會失敗。 寫入作業失敗包括記錄的任何寫入。
升級您的 App Service 方案,即可在應用程式中增加或移除配額。
了解計量
重要
平均回應時間將會被取代,以避免和計量彙總產生混淆。 使用回應時間作為取代。
注意
應用程式的計量包含對應用程式 SCM 網站 (Kudu) 的要求。 這包含使用 Kudu 檢視網站 logstream 的要求。 Logstream 要求可能會花費數分鐘的時間,而這會影響到要求時間的計量。 在搭配自動調整邏輯使用這些計量時,使用者應該注意此關聯性。
HTTP 伺服器錯誤只會記錄觸達後端服務 (裝載應用程式的背景工作角色) 的要求。 如果要求在前端失敗,其便不會記錄為 HTTP 伺服器錯誤。 健康情況檢查功能/Application Insights 可用性測試可於外部用於監視。
計量提供有關應用程式或 App Service 方案行為的資訊。
若為應用程式,可用的計量如下︰
計量 | 描述 |
---|---|
回應時間 | 應用程式處理要求所花費的時間是以秒為單位。 |
平均回應時間 (取代) | 應用程式處理要求所花費的平均時間是以秒為單位。 |
平均記憶體工作集 | 應用程式使用的平均記憶體數量 (以 MiB 為單位)。 |
連線 | 存在於沙箱 (w3wp.exe 及其子處理序) 中的已繫結通訊端數目。 建立已繫結通訊端時,會透過呼叫 bind()/connect() API 來建立,然後保留直到使用 CloseHandle()/closesocket() 來關閉上述通訊端為止。 |
CPU 時間 | 應用程式所耗用的 CPU 數量 (以秒為單位)。 如需此計量的詳細資訊,請參閱 CPU 時間與 CPU 百分比。 |
目前的組件 | 在此應用程式的所有 AppDomain 載入的目前組件數目。 |
資料輸入 | 應用程式所耗用的連入頻寬量 (MiB)。 |
資料輸出 | 應用程式所耗用的連出頻寬量 (MiB)。 |
檔案系統使用方式 | 依儲存體共用,以位元組為單位的使用量。 |
Gen 0 記憶體回收 | 自應用程式處理序啟動後,對層代 0 物件進行記憶體回收的次數。 較高層代的 GC 包含所有較低層代的 GC。 |
Gen 1 記憶體回收 | 自應用程式處理序啟動後,對層代 1 物件進行記憶體回收的次數。 較高層代的 GC 包含所有較低層代的 GC。 |
Gen 2 記憶體回收 | 自應用程式處理序啟動後,對層代 2 物件進行記憶體回收的次數。 |
控制代碼計數 | 應用程式處理序目前開啟的控制代碼總數。 |
健康情況檢查狀態 | App Service 方案中應用程式執行個體的平均健全狀態。 |
Http 2xx | 導致 HTTP 狀態碼 ≥ 200 但 < 300 的要求計數。 |
Http 3xx | 導致 HTTP 狀態碼 ≥ 300 但 < 400 的要求計數。 |
Http 401 | 導致 HTTP 401 狀態碼的要求計數。 |
Http 403 | 導致 HTTP 403 狀態碼的要求計數。 |
Http 404 | 導致 HTTP 404 狀態碼的要求計數。 |
Http 406 | 導致 HTTP 406 狀態碼的要求計數。 |
Http 4xx | 導致 HTTP 狀態碼 ≥ 400 但 < 500 的要求計數。 |
Http 伺服器錯誤 | 導致 HTTP 狀態碼 ≥ 500 但 < 600 的要求計數。 |
每秒的 IO 其他位元組數 | 應用程式處理序發送位元組到非資料處理 I/O 作業 (例如控制作業) 的速率。 |
每秒的 IO 其他作業數 | 應用程式處理序發送非讀取或寫入作業的 I/O 作業速率。 |
每秒的 IO 讀取位元組數 | 應用程式處理序從 I/O 作業讀取位元組的速率。 |
每秒的 IO 讀取作業數 | 應用程式處理序發出讀取 I/O 作業的速率。 |
每秒的 IO 寫入位元組數 | 應用程式處理序將位元組寫入至 I/O 作業的速率。 |
每秒的 IO 寫入作業數 | 應用程式處理序發出寫入 I/O 作業的速率。 |
記憶體工作集 | 應用程式目前使用的記憶體數量 (MiB)。 |
私用位元組 | 私人位元組數是應用程式處理序目前配置的記憶體大小 (位元組),無法和其他處理序共用。 |
要求 | 要求總數 (不論其導致的 HTTP 狀態碼為何)。 |
應用程式佇列中的要求數 | 應用程式要求佇列中的要求數目。 |
執行緒計數 | 應用程式處理序中目前作用中的執行緒數目。 |
應用程式網域總計 | 在此應用程式中載入的目前 AppDomain 數目。 |
已卸載的應用程式網域總計 | 自應用程式啟動後,已卸載的 AppDomain 總數。 |
若為 App Service 方案,可用的計量如下︰
注意
App Service 方案計量只適用於基本、標準和進階層中的方案。
計量 | 描述 |
---|---|
CPU 百分比 | 方案的所有執行個體使用的平均 CPU。 |
記憶體百分比 | 方案的所有執行個體使用的平均記憶體。 |
資料輸入 | 方案的所有執行個體使用的平均連入頻寬。 |
資料輸出 | 方案的所有執行個體使用的平均連出頻寬。 |
磁碟佇列長度 | 儲存體上已排入佇列的平均讀取和寫入要求數目。 較高磁碟佇列長度表示應用程式可能因為磁碟 I/O 過多而變慢。 |
Http 佇列長度 | 必須在履行前排入佇列的平均 HTTP 要求數目。 HTTP 佇列長度很大或不斷增加是方案負載過重的徵兆。 |
CPU 時間與 CPU 百分比
有兩個計量可反映 CPU 使用量:
CPU 時間:適用於裝載在免費或共用方案的應用程式,因為其中有一個配額是以應用程式使用的 CPU 分鐘數來定義。
CPU 百分比:適用於裝載在基本、標準和進階方案的應用程式,因為這些應用程式可以相應擴增,而此 CPU 百分比會清楚指出所有執行個體的整體使用量。
計量資料細微性和保留原則
應用程式和應用程式服務方案的計量會由服務記錄和彙總,並根據這些規則進行保留。
在 Azure 入口網站中監視配額和計量
若要檢閱影響應用程式的各種配額和計量狀態,請前往 Azure 入口網站。
若要尋找配額,請選取 [設定]>[配額]。 在圖表上,您可以檢閱:
- 配額名稱。
- 重設間隔。
- 目前限制。
- 目前的值。
您可以直接從資源 [概觀] 頁面存取計量。 在這裡,您會看到代表一些應用程式計量的圖表。
按一下這些圖表的任何一項將帶您進入計量檢視,您可以在其中建立自訂圖表,以及查詢不同的計量等等。
若要進一步了解計量,請參閱監視服務計量。
警示和自動調整
應用程式或 App Service 方案的計量可以連接到警示。 如需詳細資訊,請參閱接收警示通知。
裝載在基本或進階 App Service 方案中的 App Service 應用程式有支援自動調整。 自動調整可讓您設定用以監視 App Service 方案計量的規則。 這些規則可以增加或減少執行個體計數,並視需要提供其他資源。 當應用程式過度佈建時,這些規則也可協助您節省成本。
如需詳細資訊,請參閱如何調整和 Azure 監視器自動調整的最佳做法。