<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix"><br>
<div class="moz-signature">
<style>a {color: #F7</style>On 14/03/2014 20:01, il Katta wrote:<br>
</div>
</div>
<blockquote
cite="mid:CAH7uX0bzfbu-G_YZivgvNMKYnNmms1YGo6J5Mgcf-BQ2qX4EeA@mail.gmail.com"
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>
<br>
<div class="gmail_quote">
Il giorno 13 marzo 2014 05:02, Technical GanXta <span
dir="ltr"><<a moz-do-not-send="true"
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">
Ciao a tutti,<br>
<br>
non scrivo molto spesso ma spero che l'argomento vi piacerà.<br>
Allo scopo di eseguire dei test sto creando una farm di
macchine<br>
virtuali (penso di crearne 100).<br>
<br>
Come sistema operativo utilizzerò una distribuzione molto
leggera<br>
chiamata TinyCore [0] (ringrazio a Matias per il
suggerimento!).<br>
E' una distribuzione decisamente particolare. Ho creato una
prima<br>
macchina con successo e posso già osservare che ha un
footprint<br>
davvero piccolo, infatti utilizza solo 28MB di RAM circa.<br>
<br>
Voglio simulare un ambiente "enterprise", in cui varie (e
tante!)<br>
macchine virtuali competono per accedere alle risorse
fisiche (stiamo<br>
parlando di due host clusterizzati con uno storage
condiviso, ma non<br>
entro nei dettagli dell'infrastruttura).<br>
Ogni singola macchina virtuale avrà un processore single
core, single<br>
thread e 64MB RAM.<br>
<br>
Per rendere l'ambiente "realistico" pensavo di creare dei
finti<br>
carichi di lavori che sono casuali e vengono generati in
automatico<br>
all'avvio di ogni macchina virtuale.<br>
I carichi di lavoro devono consumare risorse CPU e RAM, ma
non DISK o NETWORK.<br>
Vorrei quindi implementare uno script in sh che venga
eseguito<br>
all'avvio e funzioni in questo modo:<br>
<br>
- genera un numero casuale N tra 0 e 7<br>
- caso 0: genera un carico di lavoro che utilizza il 10%
della CPU e<br>
una percentuale casuale per quanto riguarda la RAM (<=
90%)<br>
- caso 1: genera un carico di lavoro che utilizza il 25%
della CPU e<br>
una percentuale casuale per quanto riguarda la RAM (<=
90%)<br>
- caso 2: genera un carico di lavoro che utilizza il 60%
della CPU e<br>
una percentuale casuale per quanto riguarda la RAM (<=
90%)<br>
- caso 3: genera un carico di lavoro che utilizza il 90%
della CPU e<br>
una percentuale casuale per quanto riguarda la RAM (<=
90%)<br>
- caso 4: genera un carico di lavoro che utilizza il 10%
della RAM e<br>
una percentuale casuale per quanto riguarda la CPU (<=
90%)<br>
- caso 5: genera un carico di lavoro che utilizza il 25%
della RAM e<br>
una percentuale casuale per quanto riguarda la CPU (<=
90%)<br>
- caso 6: genera un carico di lavoro che utilizza il 60%
della RAM e<br>
una percentuale casuale per quanto riguarda la CPU (<=
90%)<br>
- caso 7: genera un carico di lavoro che utilizza il 90%
della RAM e<br>
una percentuale casuale per quanto riguarda la CPU (<=
90%)<br>
<br>
Le percentuali sono diciamo indicative e non importa se
variano (anzi,<br>
sarebbe ancora meglio).<br>
Come potrei generare questi carichi di lavoro? Stavo
pensando di<br>
creare dei loop infiniti (while : do <comando> done)
che eseguono<br>
continuamente qualche comando standard di linux, potrebbe
funzionare?<br>
<br>
Chi mi può aiutare? :)<br>
<br>
[0] <a moz-do-not-send="true"
href="http://tinycorelinux.net/" target="_blank">http://tinycorelinux.net/</a><br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Mazilu "Technical GanXta" Teodor<br>
informatician, system administrator, geek<br>
XMPP: <a moz-do-not-send="true"
href="mailto:giecsar@gmail.com">giecsar@gmail.com</a><br>
BitMessage: BM-2cU9vsEQWWJ9RUpjhV2xHkrZzUn7gyRCpZ<br>
<br>
--<br>
Sito BgLUG: <a moz-do-not-send="true"
href="http://www.bglug.it" target="_blank">http://www.bglug.it</a><br>
Mailing list: <a moz-do-not-send="true"
href="http://lists.linux.it/listinfo/bglug"
target="_blank">http://lists.linux.it/listinfo/bglug</a><br>
</font></span></blockquote>
</div>
<br>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">
</pre>
</blockquote>
<br>
Grazie mille Andrea, quando avrò un attimo di tempo farò una prova!<br>
<br>
Saluti,<br>
A presto<br>
</body>
</html>