Avamar:如何透過調整雜湊和檔案快取來控制 Avtar 記憶體使用率
Summary: 最佳化 Avamar 記憶體使用率:調整雜湊和檔案快取、使用旗標覆寫預設限制,以及量身打造快取大小以增強效能。
Instructions
解決下列問題的資訊 avtar 記憶體使用率:
在以下情況下,有三個主要因素會影響用戶端上的整體記憶體使用量 avtar 執行:
1.可使用 avtar 執行備份時,二進位本身需要記憶體 (亦即 snapup)。所耗用的記憶體數量 avtar 進程通常在 20 MB 到 30 MB 的範圍內。此數量取決於客戶機運行的作業系統,並且在備份期間也會根據要由以下人員搶購的文件的結構而波動 avtar。
2.可使用 avtar Process 會將兩個快取檔案載入到記憶體中。這兩個快取檔案存在於 Avamar var 目錄中。其中第一個是檔案快取 (f_cache.dat)。檔案快取記憶體儲存檔案屬性的哈希,並用於快速識別哪些檔以前已備份到 Axion (又稱 Avamar) 伺服器。文件快取的存在是後續原因之一 Axion 備份(即在初始備份之後)通常非常快。通常,檔緩存會篩選出大約 95% 到 98% 的檔。如果檔案快取被刪除、未使用或大小不足,則必須先開啟、讀取、分塊和散列檔案快取中未「命中」的每個檔案,然後再 avtar 程序發現雜湊先前已傳送至 Axion 伺服器。如果檔在文件緩存中存在“命中”,則永遠不會訪問該檔,從而節省大量時間和CPU。
依預設,檔案快取最多可佔用 Axion 顧客。例如,如果用戶端有 4 GB 的 RAM,則文件快取限制為最大 512 MB。每次必須增長時,檔緩存的大小都會增加一倍。目前的檔案快取大小為 5.5 MB、11 MB、22 MB、44 MB、88 MB、176 MB、352 MB、704 MB 等。在此範例中,用戶端有 4 GB 的 RAM,檔案快取的最大大小限制為 352 MB。
3.第二個快取是哈希快取 (p_cache.dat)。雜湊快取會儲存已傳送至 Axion 伺服器。如上所述, avtar 進程通過確保檔緩存的大小足夠大來獲得最大的效率。如果雜湊快取已刪除、未使用或大小過小,則當 avtar 程序發現未包含在哈希緩存中的塊的哈希, avtar 處理查詢 Axion 用於顯示雜湊的伺服器。
根據預設,雜湊快取最多可耗用 1/16 的實體 RAM Axion 顧客。在前面具有 4 GB RAM 的用戶端範例中,哈希緩存限制為最大 256 MB。每次必須增長時,哈希緩存的大小也會增加一倍。當前的哈希緩存大小為 24 MB、48 MB、96 MB、192 MB、384 MB、768 MB 等。在此範例中,用戶端有 4 GB 的 RAM,哈希緩存的最大大小限制為 194 MB。
從上面可以推斷出,如果用戶端擁有超過 1/2 GB 的 RAM,則檔和哈希緩存將主導整體記憶體利用率。這是因為兩個快取記憶體在 avtar 備份。此外,如上所示,預設為 avtar 限制為大約物理 RAM 上物理 RAM 的 3/16 Axion 顧客。
檔案和哈希快取的大小列印在 avtar 記錄。
例如:
avtar Info <5573>: - Loaded cache file C:\ProgramFiles\Avamar\var\f_cache.dat (5767712 bytes)
avtar Info <5573>: - Loaded cache file C:\ProgramFiles\Avamar\var\p_cache.dat (25166368 bytes)
在這裡,文件快取為 5.5 MB,哈希緩存為 24 MB。
在結束時 avtar 日誌,將看到以下消息集:
avtar Info <5587>: Updating cache files in C:\ProgramFiles\Avamar\var
avtar Info <5069>: - Writing cache file C:\ProgramFiles\Avamar\var\f_cache.dat
avtar Info <5546>: - Cache update complete C:\ProgramFiles\Avamar\var\f_cache.dat (5.5MB of 63MB max)
avtar Stats <6151>: File cache: 131072 entries,added/updated 140, booted 0
avtar Info <5069>: - Writing cache file C:\ProgramFiles\Avamar\var\p_cache.dat
avtar Info <5546>: - Cache update complete C:\ProgramFiles\Avamar\var\p_cache.dat (24.0MB of 31MB max)
avtar Stats <6152>: Hash cache: 1048576 entries,added/updated 1091, booted 0
從這些行中,它表示文件緩存有增長空間,但哈希緩存處於最大值。如果任一緩存大小不足,「引導」值將不為零,日誌將包含緩存大小不足的警告。這一點很重要,因為緩存的大小對整體性能有巨大的影響。
可以使用以下兩個標誌覆蓋預設快取限制快取:
--filecachemax=n
其中 n 是 MB 的數量或分數(負值 = RAM 的分數)
預設值:
--filecachemax=-8
範例將檔案快取限制為 100 MB 的大小:
--filecachemax=100
--hashcachemax=n
其中 n 是 MB 的數量或分數(負值 = RAM 的分數)
預設值:
--hashcachemax=-16
另一個實現注意事項是,如果一組用戶端上的緩存大小受到限制,則應將適當的參數添加到每個用戶端的 avtar.cmd 檔,以便每次用戶端執行備份(甚至是手動備份)時都應用它。如果avtar.cmd檔中沒有標誌,並且在沒有適當選項的情況下執行手動備份,則檔或哈希緩存可能會增長回其預設限制。
若要調整效能,有時需要從預設值增加快取大小。
這些條件可能存在於以下兩種截然相反的情況下:
1.如果用戶端有數百萬個小檔,則文件緩存可能需要從預設大小增加。一般準則是,對於 Axion 用戶端,用戶端應有 512 MB 的實體 RAM。
如果用戶端有 100 萬個檔案,則至少需要 20 MB 來儲存單一備份的檔案雜湊 (每個雜湊為 20 位元組)。由於必須存儲多個備份的檔哈希,因此需要更多,這意味著它將增長到大約 44 MB。由於預設使用物理 512 MB RAM 的 1/8,因此允許緩存增長到 64 MB 的限制,因此文件緩存的 RAM 值為 1/8 就足夠了。
2.如果用戶端有幾個大檔,則哈希緩存的預設值 1/16 可能是不夠的。
例如,如果有一個 200 GB 的資料庫,則最多必須緩存 1000 萬個哈希。由於每個雜湊為 20 個位元組,因此單一備份至少需要 200 MB。
下一個可用的增量是 384 MB,因此如果此用戶端有 4 GB 的 RAM,則必須允許哈希緩存增長到 RAM 的 1/8。如果使用預設值的 1/16 RAM,則哈希緩存限制為 192 MB,並且哈希緩存將大小不足。就資料庫而言,由於備份的檔很少,檔緩存要小得多,因此凈記憶體利用率仍約為 RAM 的 1/8 到 3/16。
若要在任何特定環境中更系統地解決此問題,請從 avtar 記錄檔和哈希緩存的大小。
如果這些緩存的總大小必須較小,則有一些方法可以限制大小。
如果必須限制快取大小,請記住以下幾點:
- 對於典型的文件伺服器,在沒有哈希緩存的情況下運行比在沒有文件緩存的情況下運行要好得多
- 對於典型的資料庫伺服器,在沒有文件緩存的情況下運行比在沒有哈希緩存的情況下運行要好得多。