Solaris 10 版本說明

x86: x86 系統中的應用程式記憶體配置的限制

Solaris 應用程式是透過像是 malloc ()brk()mmap() 等函數來配置記憶體。應用程式記憶體配置大小的上限受限於使用者虛擬位址空間的大小。使用者虛擬位址空間中所包含的程式文字、堆疊、資料及程式庫會進一步減少記憶體配置大小的上限。

32 位元運算環境

在 32 位運算環境中,使用者及核心共用 32 位元虛擬位址空間。因此,使用者虛擬位址空間的大小是 4 GB 減去核心虛擬位址空間的大小。核心虛擬位址大小的配置視實體記憶體大小而定。實體記憶體大小增加,使用者位址空間減少。在擁有 8 GB 記憶體的系統中,使用者位址空間大小大約為 3 GB。

如果記憶體配置上限對應用程式來說是不足的,您可以有兩個選項:

64 位元運算環境

在 64 位元運算環境中,32 位元應用程式的虛擬位址空間完全供使用者使用。因此,32 位元應用程式可以配置到 4 GB 整,其中不包括文字、堆疊及程式庫所需的使用者位址空間在內。

對於一些早期的 64 位元 AMD 處理器來說,記憶體配置上限會再少 1 GB。要決定您的處理器是否受影響,請執行下列步驟:

  1. 執行任一 32 位元 shell 的 pmap $$ 指令。

  2. 在程序對映中,檢查是否列出位址大於等於 0xC0000000。如果這些位址不存在,則 Solaris 作業系統會將 32 位元應用程式限制在 4 GB 虛擬位址範圍中最低的 3 GB。

64 位元應用程式可以配置 250 TB 的記憶體,但需要依據使用的應用程式來決定。