<div dir="ltr">Ancora mi sono dimenticato una nota. <div>Nello script manca il controllo sulla quantità di memoria disponibile. Utilizzando ramfs sarebbe opportuno effettuare sempre un controllo per evitare che il sistema diventi instabile.</div>
<div><br><div>L'utilizzo di ramfs è potenzialmente dannoso per la stabilità del sistema, i motivi li trovi riassunti in "Documentation/filesystems/ramfs-rootfs-initramfs.txt"</div><div><br></div><div>Ho testato le performance di frandom e sono notevoli !!</div>
<div><br></div><div>Per la generazioni di un file di 1.5 GB ( utilizzando dd ):</div><div>urandom ha impiegato 126 secondi</div><div>frandom ha impiegato soli 7 secondi</div><div><br></div><div>Saluti,</div><div>Katta</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">Il giorno 16 marzo 2014 13:35, il Katta <span dir="ltr"><<a href="mailto:ilkatta88@gmail.com" target="_blank">ilkatta88@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 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" target="_blank">https://gist.github.com/il-katta/9582040</a></div>
<div class="gmail_extra">[1] <a href="http://billauer.co.il/frandom.html" target="_blank">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><div class="h5">
<div bgcolor="#FFFFFF" text="#000000"><div>
<div><br>
<div>
On 14/03/2014 20:01, il Katta
wrote:<br>
</div>
</div>
</div><div><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></div></div><div class="">
--<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></div></blockquote></div><br></div>
</blockquote></div><br></div></div>