Écrire un shell bash script qui consomme une quantité constante de la RAM pour un utilisateur de temps définie

Je suis en train d'écrire un shell bash script qui consomme une grande quantité de mémoire vive sur un dispositif intégré pour un utilisateur de temps définie. Comment puis-je le faire sans l'aide de tableaux ?

  • je ne suis pas versé dans bash-fu, mais... quoi de mal avec l'aide de matrices?
  • Les tableaux ne sont pas pris en charge sur cette limited shell sur le périphérique intégré.
  • Alors il n'est pas Bash.
  • À moins qu'il signifie associés tableaux, qui sont "récent" dans bash. En tout cas, je ne vois pas comment ne pas à l'aide de tableaux est pertinente pour ce problème.
  • Si vous avez de base des outils GNU, vous pouvez le faire yes | tr \\n x | head -c $BYTES | grep n parce que grep charges de l'entrée ligne par ligne dans la mémoire RAM. Parce que la ligne sera de $OCTETS de long, il vous permettra de charger $OCTETS en mémoire. Grep lui-même utilise comme 200KO, vous pourriez avoir besoin de soustraire que. Si vous avez également bash, vous pouvez ajouter du temps: cat <(yes | tr \\n x | head -c $((1024*1024*2))) <(sleep 4) | grep n (pour 2 mo de RAM, car 1024*1024*2=2MB). Si vous avez pv et souhaitez augmenter lentement RAM: yes | tr \\n x | head -c $BYTES | pv -L $BYTESPERSEC | grep n
  • Votre solution ne fonctionne pas pour moi parce que grep se bloque lorsque les lignes qui sont "trop long"- peut-être un problème de configuration. Le suivant a fonctionné pour moi: { yes | head -c "$bytes"; sleep "$seconds"; } | tail -c "$bytes" >/dev/null.
  • Je pourrais sort cette dd bs=250M if=/dev/zero of=/dev/null à occuper 250 MO

InformationsquelleAutor abc | 2011-02-11