Solaris-program tilldelar minne med hjälp av funktioner som exempelvis malloc(), brk() eller mmap(). Hur mycket minne som kan tilldelas av ett program begränsas av storleken på användarens virtuella adressutrymme. Programtext, -stack, -data och -bibliotek som finns i det virtuella adressutrymmet kan minska storleken för den maximala minnestilldelningen ytterligare.
I en 32-bitars datamiljö delas det virtuella adressutrymmet mellan användaren och kärnan. Det innebär att storleken på användarens virtuella adressutrymme är 4 GB minus storleken på kärnans virtuella adressutrymme. Hur storleken för det virtuella adressutrymmet konfigureras beror på mängden fysiskt minne. I takt med att det fysiska minnet ökar, minskar storleken på användarens virtuella adressutrymme. För system med 8 GB minne innebär detta att användarens virtuella adressutrymme är ungefär 3 GB.
Det finns två alternativ om minnestilldelningen är otillräcklig för ett program:
Du kan minska standardstorleken för kärnans virtuella adressutrymme, så ökar användarens virtuella adressutrymme. Du kan ge kernelbase-variabeln ett högre värde genom att använda kommandot eeprom. Var försiktig när du ändrar kernelbase. System med ett litet virtuellt adressutrymme för kärnan kan annars hänga sig eller fungera mindre effektivt.
Ett bättre alternativ är att köra programmet i Solaris x86 64-bitars datamiljö.
I en 64-bitars datamiljö är det virtuella adressutrymmet för 32-bitarsprogram helt och hållet till för användaren. Därför kan ett 32-bitarsprogram tilldela 4 GB minus det användaradressutrymme som krävs för text, stack och bibliotek.
På vissa tidiga 64-bitars AMD-processorer kan minnestilldelningen minskas ytterligare med 1 GB. Gå igenom följande steg för att avgöra om din processor påverkas:
Kör kommandot pmap $$ från ett 32-bitarsskal.
Kontrollera om adresser som är större eller lika med 0xC0000000 listas på processöversikten. Om det inte finns några sådana adresser begränsar operativsystemet Solaris 32-bitarsprogram till de 3 GB som är längst ned i det virtuella adressutrymmet på 4 GB.
Ett 64-bitarsprogram kan tilldela 250 TB minne beroende på hur mycket programmet redan använder.