web-dev-qa-db-fra.com

Définition de la limite pour la mémoire physique totale disponible sous Linux

Je sais que je suis censé définir mem=MEMORY_LIMIT. Mais je ne sais pas où aller, au moment de l'exécution ou au moment du démarrage, pour définir une limite à la mémoire physique totale contrôlée par le système d'exploitation.

J'exécute des tests de performances d'E/S et j'aimerais limiter la quantité de mémoire physique globale disponible.

14
KZcoding

J'ai trouvé la réponse que je cherchais. Fondamentalement, le paramètre qui définit la mémoire physique totale disponible est "mem = MEMORY_LIMIT". Et ceci est un paramètre de démarrage du noyau. Vous devez ajouter, par exemple, "mem = 1G" pour un maximum de 1 Go de mémoire physique disponible au paramètre de démarrage du noyau. Pour plus d'informations sur l'ajout de paramètres de démarrage du noyau, consultez https://wiki.ubuntu.com/Kernel/KernelBootParameters

15
KZcoding

Modifiez les paramètres de démarrage de votre noyau dans lilo.conf, grub.conf, grub.cfg et menu.lst (lesquels dépendent de votre distribution et de votre chargeur de démarrage particuliers; consultez la documentation de votre distribution pour plus de détails) afin d'inclure le paramètre mem=512M (ou la taille à émuler) sur la ligne en spécifiant vos paramètres de noyau. 

Par exemple, dans Grub, il devrait y avoir une ligne qui dit quelque chose comme kernel /boot/vmlinuz param1=val1 param2=val2. Ajoutez le mem=512M à cette liste de paramètres. Vous pouvez créer des entrées distinctes pour votre menu de démarrage en copiant ces définitions entières, en les renommant et en les configurant avec une quantité de mémoire différente, afin de pouvoir démarrer rapidement avec des paramètres différents.

6
Brian Campbell

Pour ajouter à la liste de Brian Campbell, pour le chargeur de démarrage uBoot sur les périphériques BeagleBone/Black, modifiez les paramètres du noyau dans /boot/uboot/uEnv.txt
Ajouter ou modifier la ligne mmcargs=setenv bootargs mem=512M [testée avec Debian]

Utilisez > free avant et après le [redémarrage] pour confirmer la modification.

3
TekuConcept

J'ai suivi les instructions de cette page que KZcoding a mentionnées (partie: Ajout permanent d'un paramètre de démarrage du noyau)

Mon Linux est (vm dans virtualbox):

Linux ubuntu 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Avant de régler:

yavuz@ubuntu:~$ free -m
          total        used        free      shared  buff/cache   available
Mem:           3630         305        3010           6         314        3264
Swap:          3767           0        3767

Je viens de changer cette ligne dans /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT=""

à

GRUB_CMDLINE_LINUX_DEFAULT="mem=2G"

puis redémarrez le serveur. Après le redémarrage:

yavuz@ubuntu:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:           2000         298        1385           4         315        1651
Swap:          3767           0        3767
0
Yavuz Sert

A1: Oui, vous devez redémarrer.

A2: Le noyau est plutôt impitoyable en ce qui concerne les fautes de frappe. Il n'y a pas de message d'erreur. Cela pourrait-il être votre problème? Exemples: "mem = 512M" et "mem = 2G". N'oubliez pas l'espace après le paramètre précédent, mem est en minuscule et K, M ou G sont en majuscule.

0
George Rolf