¿Por qué la zona de memoria baja del Kernel es inferior a 896 MB?

¿Por qué la zona de memoria baja del Kernel es inferior a 896 MB?

En mi sistema, Lowmem del kernel (NORMALZONE) tiene una longitud de 597424 kb. Según tengo entendido, debería ser de unos 890 MB como máximo. ¿Por qué este sistema utiliza ~590 MB? ¿Es sintonizable?
Pregunto esto porque me estoy enfrentando acondiciones de habitación de baja memoria en este sistema de vez en cuando. Por eso quiero usar lowmem lo más grande posible.

Linux 3.10.24-2 #1 SMP martes 31 de diciembre 07:09:19 EET 2013 i686 i686 i386 GNU/Linux

# free -lk
             total       used       free     shared    buffers     cached
Mem:      37426296    3369432   34056864          0      36048    1373524
Low:        597424     278236     319188
High:     36828872    3091196   33737676
-/+ buffers/cache:    1959860   35466436
Swap:     35318864          0   35318864



# cat /proc/meminfo
MemTotal:       37426296 kB
MemFree:        33971268 kB
Buffers:           36172 kB
Cached:          1383668 kB
SwapCached:            0 kB
Active:          2034844 kB
Inactive:        1036224 kB
Active(anon):    1656904 kB
Inactive(anon):    12716 kB
Active(file):     377940 kB
Inactive(file):  1023508 kB
Unevictable:           0 kB
Mlocked:               0 kB
HighTotal:      36828872 kB
HighFree:       33667168 kB
LowTotal:         597424 kB
LowFree:          304100 kB
SwapTotal:      35318864 kB
SwapFree:       35318864 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:       1653176 kB
Mapped:           138320 kB
Shmem:             18348 kB
Slab:             117464 kB
SReclaimable:      44796 kB
SUnreclaim:        72668 kB
KernelStack:        7704 kB
PageTables:        97184 kB
NFS_Unstable:          0 kB
Bounce:              116 kB
WritebackTmp:          0 kB
CommitLimit:    65259900 kB
Committed_AS:    3876084 kB
VmallocTotal:     122880 kB
VmallocUsed:       27020 kB
VmallocChunk:      23732 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       10232 kB
DirectMap2M:      901120 kB

Respuesta1

No estoy seguro de que me escuchen esta vez, pero lo intentaré de todos modos: cambiar a x86_64no es tan difícil como crees.

Pero supongo que todavía necesitas algún tipo de explicación. Propongo que si tuvieras solo 4G de memoria, entonces LowTotalequivaldría a ~850 MB, para 16G sería alrededor de ~750 MB y para 64G sería ~378 MB.

Déjamecitar Linux Torvalds:

Toda su poca memoria se utiliza para las struct pagematrices que describen todo lo demás.

Entonces, la solución alternativa a su problema esreducircantidad de memoria que tiene el servidor (físicamente o posiblemente a través dememparámetro de arranquepero no lo he comprobado).
También puede cambiar la división del kernel/espacio de usuario a través deVMSPLIT_2Gopción de configuración del kernel.
Pero en realidad, cambiar a x86_64 es más fácil, ¿no? =]

PD. De hecho, puedes usar el área de usuario x86 con el kernel x86_64.

información relacionada