A method for memory management, comprising: pooling (S110) at least one memory to generate a memory pool; dividing (S130) the memory pool to generate at least one memory space; allocating (S140) a respective memory space of the at least one memory space to a respective CPU of a plurality of CPUs in a one-to-one correspondence manner and setting (S141) the respective memory space as a pinned memory of the respective CPU; setting (S142) an unallocated memory space as a shared memory pool of the memory pool; obtaining (S150) a memory value that represents usage of the respective memory space by the respective CPU during operation; determining (S160) if the memory value exceeds a preset threshold range; and based on whether the memory value exceeds the preset threshold range, selecting (S171) an additional memory space from the memory pool to allocate to the respective CPU, or reallocating (S172) at least a portion of the respective memory space that has been allocated to the respective CPU; and further comprising: selecting a number of memory controllers, wherein the number of memory controllers is equal to a number of the respective CPUs; matching in a one-to-one correspondence manner port addresses of the respective CPUs to port addresses of the memory controllers; and allocating a corresponding memory space of at least one dual in-line memory module, DIMM, slot of the memory pool in at least one channel associated with the memory controllers to the respective CPU as the pinned memory, wherein the allocated corresponding memory space of the DIMM slot includes a fixed address. pooling (S110) at least one memory to generate a memory pool; dividing (S130) the memory pool to generate at least one memory space; allocating (S140) a respective memory space of the at least one memory space to a respective CPU of a plurality of CPUs in a one-to-one correspondence manner and setting (S141) the respective memory space as a pinned memory of the respective CPU; setting (S142) an unallocated memory space as a shared memory pool of the memory pool; obtaining (S150) a memory value that represents usage of the respective memory space by the respective CPU during operation; determining (S160) if the memory value exceeds a preset threshold range; and based on whether the memory value exceeds the preset threshold range, selecting (S171) an additional memory space from the memory pool to allocate to the respective CPU, or reallocating (S172) at least a portion of the respective memory space that has been allocated to the respective CPU; and further comprising: selecting a number of memory controllers, wherein the number of memory controllers is equal to a number of the respective CPUs; matching in a one-to-one correspondence manner port addresses of the respective CPUs to port addresses of the memory controllers; and allocating a corresponding memory space of at least one dual in-line memory module, DIMM, slot of the memory pool in at least one channel associated with the memory controllers to the respective CPU as the pinned memory, wherein the allocated corresponding memory space of the DIMM slot includes a fixed address. selecting a number of memory controllers, wherein the number of memory controllers is equal to a number of the respective CPUs; matching in a one-to-one correspondence manner port addresses of the respective CPUs to port addresses of the memory controllers; and allocating a corresponding memory space of at least one dual in-line memory module, DIMM, slot of the memory pool in at least one channel associated with the memory controllers to the respective CPU as the pinned memory, wherein the allocated corresponding memory space of the DIMM slot includes a fixed address. <EOS>