PAE : e' attivo di default o devo abilitarlo in GRUB ??

2 risposte [Ultimo contenuto]
Ritratto di ferretti75
ferretti75
(Monster)
Offline
Monster
Iscritto: 08/07/2005
Messaggi: 476

Ciao

mi trovo nella spiacevole situazione di dover processare grandi quantita' di dati in una applicazione web ... in java.
Per chi non lo sa, java, essendo un singolo processo, non puo' allocare + di 2 Giga di memoria ( se ci sono liberi e contigui ) su architettura a 32 bit.
Ora, avendo io ( sulla macchina di test ), 4 Giga di RAM + swap ed essendo detentore di un kernel con le opzioni pae precompilate ( grazie Ubuntu ... ), non riesco a capire come mai non riesco a far partire una VM con + di 1,5 Gb di heap .
Mi son documentato tutta la mattina ma non riesco a venirne a capo : il PAE non mi doveva permettere di usare fino a 64Gb di memoria ?? non dovevo essere in grado di lanciare processi che occupavano + di 2 Gb ?
L'unica cosa che mi viene in mente e' che il kernel sia effettivamente compilato con le opzioni PAE ma che il modulo ( e' un modulo ?? ) non sia stato caricato .

L'entry di Grub2 che carica il suddetto kernel e' :

menuentry 'Ubuntu, with Linux 2.6.38-9-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os {
        recordfail
        set gfxpayload=$linux_gfx_mode
        insmod part_msdos
        insmod ext2
        set root='(/dev/sda,msdos1)'
        search --no-floppy --fs-uuid --set=root a05489c3-eb25-4148-8c6a-e270916a7289
        linux   /boot/vmlinuz-2.6.38-9-generic-pae root=UUID=a05489c3-eb25-4148-8c6a-e270916a7289 ro   quiet splash vt.handoff=7
        initrd  /boot/initrd.img-2.6.38-9-generic-pae
}

devo aggiungere qualcosa ?? Oppure non ho capito una cippa di tutto quello che ho letto finora ??

TIA
marco

magic is real ... unless explicitly declared as integer

Ritratto di sette70
sette70
(Geek)
Offline
Geek
Iscritto: 14/01/2005
Messaggi: 113

Ciao,penso che l'estensione PAE ti constente solo di avere più ram riconosciuta dal kernel.
Probabilmente non cambia il totale di ram che può allocare ogni singolo processo.
Comunque il kernel bigmem di Debian è la stessa cosa del PAE Ubuntu.

Ritratto di mcortese
mcortese
(Guru)
Offline
Guru
Iscritto: 27/02/2009
Messaggi: 640

In una CPU a 32 bit, gli indirizzi (virtuali) vanno da 0 a 2^32-1, cioè 4 GiB. Non c'è nulla che tu possa fare per ovviare a questo.

L'estensione PAE cambia solo come questo spazio di indirizzi di 4 GiB sia mappato sulla memoria fisicamente presente sul tuo PC. Ogni processo ha la sua mappa di traduzione dei suoi indirizzi virtuali (a 32 bit) in quelli fisici (che, nel caso si usi PAE, sono a più di 32 bit). In particolare, gli indirizzi (virtuali) compresi nell'ultimo GiB sono tradotti in indirizzi (fisici) corrispondenti alla memoria fisica riservata al kernel, mentre gli indirizzi (virtuali) degli altri 3 GiB sono mappati nel resto della memoria fisica (previa allocazione).

In conclusione: anche avendo decine di giga di RAM, ogni processo ne vede solo una "finestra" di 3 GiB (più uno che però non può usare perché è di proprietà del kernel).

Che dire? Passa ad una macchina a 64 bit, o trova il modo di lanciare più processi.