介紹

本文將探討 Intella 的記憶體管理機制,以及為何無法針對所有硬體與軟體配置設定出單一的最佳化參數。同時也將說明 Intella 各組件對記憶體的使用方式,以及為什麼記憶體調校並非僅僅將設定滑桿調至最大值那麼簡單。

也可參考以下影片說明:

Intella 的記憶體使用分為三個主要處理程序:

  • Case Manager(案件管理器)
  • Intella Main process(主程序)
  • Crawlers(爬取程序)

這些程序的記憶體分配由 Intella 自動管理。然而,實際使用的記憶體量會取決於所處理的資料項目與數位物件(artifacts)的數量與複雜度、Intella 執行所在機器的可用 RAM 容量,以及其他系統因素。

使用者可透過修改設定,為 Intella 的各個程序分配更多記憶體,並根據自身硬體與軟體配置調整 Crawler 的參數設定。透過使用者介面所進行的變更會立即生效,無需重新啟動 Intella。

Case Manager 記憶體設定

Case Manager 的記憶體設定僅用於分配給 Case Manager 程序本身,不會影響資料處理作業。預設情況下,該設定固定為 256MB,通常無須進行更改。因此,在使用者介面中沒有提供調整此參數的控制項。

若確有需要,使用者可手動修改此設定。唯一可能需要調整的情形是進行案件的匯出與匯入。在極少數情況下,當匯出案件為 ICF 檔案 時,可能需要增加 Case Manager 的記憶體容量。不過,一般而言,並不建議更動此設定。

Case Manager 程序的存續時間非常短暫——當使用者選擇案件並點擊「Open」按鈕後,該程序即會在幾秒內結束。

若需修改 Case Manager 的記憶體設定,請編輯位於
c:Program FilesVoundIntella X.Y.Z
資料夾中的 Intella.l4j.ini 檔案。
找到以 -Xmx 開頭的設定行,並進行修改。例如,若要將 Case Manager 記憶體設定為 5GB,可使用以下參數:

  • -Xmx5g

主程序(Main Process)的記憶體設定

當使用者開啟案件時,Case Manager 會啟動 Main process(主程序),該程序負責控制 Intella 介面中所有可見的操作與功能。Main process 亦負責彙整並整合各個 crawler processes(爬取程序) 的輸出結果,將其寫入案件資料中(詳見下文)。

在所有 Intella 進程中,Main process 通常是最耗用記憶體的部分。因此,Intella 在 Case Editor(案件編輯器) 視窗中設置了記憶體控制滑桿,讓使用者可依系統資源情況調整記憶體分配。

下表顯示 Intella 根據系統 RAM 容量所設定的預設記憶體分配值:

然而,實際所需的記憶體量會因多種因素而異,例如所處理項目的數量與大小等。因此,Intella 提供記憶體調整滑桿,允許使用者依據自身的硬體配置與處理需求,手動調整 Main process(主程序) 的記憶體分配。

Crawler 與匯出程序的記憶體設定

Crawler processes(爬取程序) 的記憶體分配由 Intella 自動計算。系統會根據可用的 RAM 容量,扣除分配給 Main process(主程序) 的記憶體後,再依據可用的爬取程序數量進行配置。預設情況下,Intella 會根據系統中的 CPU 核心數 與 可用 RAM 自動決定應啟動的爬取程序數。

值得注意的是,Crawler 設定不僅影響資料爬取,還同時控制多項相關程序,包括:

  • 匯出(Exporting)
  • Preview 分頁中的 PDF 轉換
  • 匯入 Load File 時的 TIFF 轉 PDF 處理
  • OCR 匯入時的文字擷取(Text Extraction)
  • Outlook 與 Notes 資料驗證

Crawler 的主要任務是擷取並收集資訊,其本身並不直接進行資料索引。索引(Indexing)會在後續的後處理階段(Post-processing)中,由 Main process 負責完成。

何時需要進行效能優化?

一般而言,無需更改此設定。然而,若需依據特定的處理需求或硬體配置進行效能優化,使用者可手動調整 Crawler 記憶體設定 以獲得更佳的處理效能。

優化記憶體與 Crawler 設定以提升效能

為了在使用 Intella 時充分發揮硬體資源的效能,適當地優化記憶體與 Crawler 設定 是關鍵。然而應注意,若手動將系統所有可用記憶體分配給 Intella 各進程,可能導致系統不穩定。建議不要將超過 75% 的總記憶體 分配給 Intella。本文最後部分提供了一個範例,示範約將系統總記憶體的 50% 分配給 Intella 進程的設定方式。

在設定記憶體時,也需考量 Intella 當前執行的處理階段。例如,在進行資料來源的 索引化(Indexing) 時,應將更多記憶體分配給 Crawler processes(爬取程序),特別是在多核心、高階硬體環境中同時運行多個爬取程序的情況下。於爬取階段(Crawling phase),Main process(主程序) 的記憶體需求相對較低;但在後續的 後處理階段(Post-processing phases),Main process 將需要顯著更多的記憶體資源。

若是在調查已完成索引的案件時,幾乎所有可用記憶體都應分配給 Main process,比例應與案件規模相符。換言之,若案件大小僅為 40GB,則無需為其分配 128GB 的記憶體。Intella 會根據硬體資源自動分配記憶體給不同進程,但使用者仍可依照自身硬體規格與資料集特性,手動微調記憶體與 Crawler 設定,以達到最佳效能。

最佳的記憶體與 Crawler 配置並無固定標準,需視資料類型而定。例如,若僅索引單一大型 PST 檔案,即使手動增加記憶體與 Crawler 數量,效能提升可能有限。在此情況下,系統預設的記憶體與 Crawler 數量通常已足以達到最佳效能。
但若資料集包含大量 鬆散檔案(loose files) 或 磁碟映像(disk images),則增加 Crawler 數量可明顯提升處理效率。此外,增加分配給 Crawler 的記憶體,也有助於避免因特定大型項目導致的 out-of-memory 錯誤 或 Crawler 當機

總結

  • 在執行索引時,若資料集中包含大量鬆散檔案,增加 Crawler 數量可有效提升效能。
  • 增加分配給 Crawler 的記憶體可緩解因大型項目造成的記憶體不足或程序崩潰問題。
  • 在匯入 OCR 文字時,增加 Crawler 數量同樣能提升效能。
  • 在案件分析階段,應將幾乎所有可用記憶體分配給 Main process。
  • 當執行 PDF 或 PST 等格式匯出時,適度增加分配給 Crawler 的記憶體亦可改善整體效能。

效能優化步驟

Intella 的設定取決於多項因素,例如硬體規格與資料類型等。由於無法針對所有情境指定統一的最佳設定,因此以下步驟僅作為建議,使用者可依實際需求進行調整。

調整 Main Process 記憶體分配

  1. 開啟目標案件的 Case Editor(案件編輯器) 視窗。
  2. 透過滑桿(slider)調整 Main process(主程序) 的記憶體分配量。
  3. 滑桿最多可設定至系統總記憶體的一半,以確保 Windows 作業系統仍保有足夠記憶體,避免因資源不足導致系統不穩定。

變更 Crawler 數量

  1. 開啟目標案件的 Case Editor 視窗。
  2. 點擊 Advanced(進階) 按鈕以顯示進階設定。
  3. 將 Crawler count(爬取程序數量) 選項由「Auto(自動)」改為「Manual(手動)」。
  4. 設定該案件所需的 Crawler 數量。

增加每個 Crawler 的記憶體分配

  1. 開啟目標案件的 Case Editor 視窗。
  2. 點擊 Advanced 按鈕以顯示進階設定。
  3. 將 Service memory allocation(服務記憶體分配) 選項由「Auto」改為「Manual」。
  4. 使用滑桿設定每個 Crawler 所需的記憶體分配量。

Intella:

在調整記憶體與 Crawler 設定時,請確保為所有 Crawler processes(爬取程序)Main process(主程序) 以及系統中其他應用程式保留足夠的記憶體資源。若為多個 Intella 進程分配過多記憶體,可能導致效能下降,例如減少可用的 Crawler 數量,進而使 Intella 的索引程序退化為單執行緒(single-thread)處理。

Intella 也能使用未直接分配給它的記憶體。Windows 檔案系統 必須保留足夠的可用記憶體,以快取(cache)證據檔與案件索引檔。若將過多記憶體分配給 Intella 各進程,可能導致作業系統記憶體不足(memory starvation),進而影響整體系統穩定性。

為達到最佳效能,建議依據硬體規格與資料類型進行記憶體配置。例如,在使用 12 核心128GB RAM 的系統上索引一份 500GB E01 磁碟映像檔(其中包含大量文字型文件)時,可採用以下設定以獲得最佳效能:

  • Main process 記憶體分配:16GB
  • Crawler 數量:4 至 8 個之間
  • 每個 Crawler 的記憶體(Service memory allocation):8GB

此組合能在高負載索引任務下平衡系統穩定性與處理效率。

結論

總而言之,在 Intella 中管理記憶體設定時,必須綜合考量硬體規格、資料類型及不同處理階段的需求。雖然 Intella 會自動為各進程分配記憶體,但若能進一步優化 記憶體 與 Crawler 設定,將能顯著提升整體運作效能。本文所提供的建議僅作為參考,使用者可依實際應用情境進行調整。

需要特別注意的是,若為多個 Intella 進程分配過多記憶體,反而可能導致效能下降。因此,在設定時應根據硬體規格與資料特性進行合理分配,同時考量系統中其他應用程式的資源需求。

適當配置 記憶體 與 Crawler 參數,是確保 Intella 在索引與案件分析過程中達到最高效能的關鍵。