La réponse actuelle essayera d'employer plus de RAM jusqu'à ce qu'il soit simplement complètement en RAM. Pour une approche plus contrôlée, si vous avez des outils de base GNU, vous pouvez le faire:
yes | tr \\n x | head -c $BYTES | grep n
# Protip: use `head -c $((1024*1024*2))` to calculate 2MB easily
Cela fonctionne parce que grep charge toute la ligne de données dans la RAM. La ligne, générée par yes
, en remplaçant les nouvelles lignes, sera infiniment longue, mais est limitée par head
à $BYTES
octets, ainsi grep chargera $ BYTES en mémoire. Grep lui-même utilise comme 100-200KB pour moi, vous pourriez avoir besoin de soustraire cela pour une quantité plus précise.
Si vous souhaitez ajouter une contrainte de temps, cela peut se faire assez facilement dans bash
(ne fonctionne pas dans sh
):
cat <(yes | tr \\n x | head -c $BYTES) <(sleep $SECONDS) | grep n
La chose <(command)
semble être peu connu, mais est souvent très utile plus d'info sur le sujet ici: http://tldp.org/LDP/abs/html/process-sub.html
Si vous avez pv
et que vous voulez augmenter lentement l'utilisation de la RAM:
yes | tr \\n x | head -c $BYTES | pv -L $BYTESPERSEC | grep n
Par exemple:
yes | tr \\n x | head -c $((1024*1024*1024)) | pv -L $((1024*1024)) | grep n
Utilisera jusqu'à un giga-octet à un taux de 1 Mo par seconde. En bonus, pv
vous montrera le taux d'utilisation actuel et l'utilisation totale jusqu'à présent.Bien sûr, cela peut aussi se faire avec des variantes précédentes:
yes | tr \\n x | head -c $BYTES | pv | grep n
Juste insérer la partie | pv |
vous montrera l'état actuel (débit total et, par défaut, je pense - sinon voir la page de manuel (manuel)).
Écrivez un programme C, appelez malloc (un MILLION mégaoctets). –
Je dois le faire dans bash .. désolé. – abc
@Travis Dr. Evil - c'est vous? – Josephine