<div dir="ltr">Ciao <br><div class="gmail_extra">si, mi sono dimenticato di elencare gli svantaggi di ramfs, e uno di questi è proprio la mancanza di controllo ( l'opzione 'size' introdotta in tmpfs ). Dettaglio non da poco, chiedo scusa! </div>

<div class="gmail_extra">Inoltre a differenza di tmpfs, ramfs è accessibile solo da root in scrittura. </div><div class="gmail_extra">Problema risolvibile utilizzando l'opzione mode=0777 ( usa questa opzione a tuo rischio e pericolo ).</div>

<div class="gmail_extra"><br></div><div class="gmail_extra">Per quel che riguarda la dimensione della memoria sei obbligato ad utilizzare dd impostando la corretta dimensione.</div><div class="gmail_extra"><br></div><div class="gmail_extra">

Ho buttato giù due righe in uno script [0] per capire che il tutto funzioni.</div><div class="gmail_extra"><br></div><div class="gmail_extra">il suo utilizzo è:</div><div class="gmail_extra">stresstest.sh < percentuale memoria ram > < percentuale cpu ></div>

<div class="gmail_extra">esempio:</div><div class="gmail_extra">stresstest.sh 50 60</div><div class="gmail_extra">( occupa il 50% della memoria e il 60% di ogni core )</div><div class="gmail_extra"><br></div><div class="gmail_extra">

Il valore della quantità della memoria è distribuito su tutti i processi creati mentre la percentuale della cpu è per core.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Per effettuare il test su un solo core:</div>

<div class="gmail_extra">stresstest.sh -s < percentuale memoria ram > < percentuale cpu ><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">L'unico problema è che la generazione di numeri casuali è una operazione abbastanza lunga.</div>

<div class="gmail_extra">Per ovviare al problema potresti guardare qua [1], ma sinceramente non ho provato.</div><div class="gmail_extra"><br></div><div class="gmail_extra">spero di esserti stato utile.</div><div class="gmail_extra">

<br></div><div class="gmail_extra">Saluti,</div><div class="gmail_extra">Katta</div><div class="gmail_extra"><br></div><div class="gmail_extra">[0] <a href="https://gist.github.com/il-katta/9582040">https://gist.github.com/il-katta/9582040</a></div>

<div class="gmail_extra">[1] <a href="http://billauer.co.il/frandom.html">http://billauer.co.il/frandom.html</a></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">Il giorno 15 marzo 2014 19:20, Technical GanXta <span dir="ltr"><<a href="mailto:giecsar@gmail.com" target="_blank">giecsar@gmail.com</a>></span> ha scritto:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
    
  
  <div bgcolor="#FFFFFF" text="#000000"><div class="">
    <div><br>
      <div>
        On 14/03/2014 20:01, il Katta
        wrote:<br>
      </div>
    </div>
    </div><div class=""><blockquote type="cite">
      <div dir="ltr">Ciao,
        <div>per occupare memoria potresti montare una porzione di
          memoria RAM come filesystem ( il bello di linux che qualsiasi
          cosa può diventare un file ):</div>
        <div><br>
        </div>
        <div># mount tmpfs -t tmpfs /mnt/mem -o size=1G</div>
        <div>Nota: tmpfs farà uso anche dello spazio SWAP ( se esiste ).
          Se si vuole utilizzare solo la memoria RAM sostituire tmpfs
          con ramfs.</div>
        <div><br>
        </div>
        <div>Se il tuo intento è occupare memoria e generare carichi
          della cpu nello stesso tempo potresti generare  dati random e
          andarli a scrivere  in quella sezione di filesystem:</div>
        <div>$ cat /dev/urandom > /mnt/mem/file$$.bin</div>
        <div>Se la generazione di valori random non fosse sufficiente
          per per occupare tutta la cpu potresti anche pensare di
          comprimere i dati prima di scriverli: </div>
        <div>
          $  cat /dev/urandom | gzip -9 > /mnt/mem/file$$.gz<br>
        </div>
        <div>( il comando termina restituendo un errore nel momento in
          cui il file generato raggiunge la dimensione della "sezione"
          di memoria montata )</div>
        <div><br>
        </div>
        <div>Il controllo sulla quantità di dati scritti si può avere
          con il comando dd<br>
        </div>
        <div>$ dd if=/dev/urandom of=/mnt/mem/file$$ bs=1024K count=1024</div>
        <div>Il comando qui sopra andrà a scrivere 1GB di dati random
          nel file "/mnt/mem/file<pid del processo>" </div>
        <div><br>
        </div>
        <div>Per quel che riguarda i limiti sull'utilizzo del processore
          esiste un comando specifico che, senza molta fantasia, si
          chiama cpulimit, e che permette di limitare l'utilizzo della
          cpu da parte di un processo specificandone la percentuale
          desiderata.</div>
        <div><br>
        </div>
        <div>Quindi mettendo tutto insieme:</div>
        <div>$ cpulimit -l 50 dd if=/dev/urandom of=/mnt/mem/file$$
          bs=1024K count=1024</div>
        <div>Il comando occupa 1G di memoria ( valore raggiunto solo
          alla terminazione dello stesso)  utilizzando il 50 % dei cicli
          di un processore. </div>
        <div> </div>
        <div>Una alternativa per definire la quantità di memoria massima
          utilizzabile da un processo o da un utente è il comando
          ulimit.</div>
        <div><br>
        </div>
        <div>$ ulimit -Sv 1024</div>
        <div> ( limita la memoria utilizzabile dall'utente che lo esegue
          a 1024 kbytes )</div>
        <div><br>
        </div>
        <div>Non saranno soluzioni "eleganti" come quelle già proposte
          ma sono in stile Unix :)</div>
        <div><br>
        </div>
        <div>Saluti,</div>
        <div>Andrea </div>
      </div>
      <div class="gmail_extra"><br>
      </div>
      <br>
      <fieldset></fieldset>
    </blockquote>
    <br></div>
    Ciao,<br>
    <br>
    dunque voglio utilizzare solo la RAM, mai in nessun caso il disco.<br>
    C'e' un problema però: facendo ramfs mi va a riempire tutta la RAM
    indipendentemente dalla size che dò al fs, rendendo il sistema
    operativo instabile.<br>
    Vedi per favore [0]  (e' uno screenshot che sono stato costretto a
    fare perché non posso copiare l'output dei comandi).<br>
    <br>
    [0]
    <a href="http://farm8.staticflickr.com/7254/13172156715_34be0b04cc_o_d.png" target="_blank">http://farm8.staticflickr.com/7254/13172156715_34be0b04cc_o_d.png</a><br>
    <br>
    <div>
      <div title="Click to translate"></div>
    </div>
  </div>

<br><br>
--<br>
Sito BgLUG: <a href="http://www.bglug.it" target="_blank">http://www.bglug.it</a><br>
Mailing list: <a href="http://lists.linux.it/listinfo/bglug" target="_blank">http://lists.linux.it/listinfo/bglug</a><br></blockquote></div><br></div>