Je veux faire des tests avec peu de ressources et pour cela j'ai besoin que 90 % de la mémoire libre soit pleine.
Comment puis-je faire cela sur un *nix
système ?
Réponse acceptée :
stress-ng est un générateur de charge de travail qui simule le stress cpu/mem/io/hdd sur les systèmes POSIX. Cet appel devrait faire l'affaire sous Linux < 3.14 :
stress-ng --vm-bytes $(awk '/MemFree/{printf "%dn", $2 * 0.9;}' < /proc/meminfo)k --vm-keep -m 1
Pour Linux>=3.14, vous pouvez utiliser MemAvailable
à la place pour estimer la mémoire disponible pour les nouveaux processus sans permuter :
stress-ng --vm-bytes $(awk '/MemAvailable/{printf "%dn", $2 * 0.9;}' < /proc/meminfo)k --vm-keep -m 1
Adaptez le /proc/meminfo
appeler avec free(1)
/vm_stat(1)
/etc. si vous en avez besoin portable. Voir aussi le wiki de référence pour stress-ng pour d'autres exemples d'utilisation.