[bglug] TinyCore Linux e quant'altro
Technical GanXta
giecsar@gmail.com
Ven 14 Mar 2014 20:14:19 CET
On 14/03/2014 20:01, il Katta wrote:
> Ciao,
> per occupare memoria potresti montare una porzione di memoria RAM come
> filesystem ( il bello di linux che qualsiasi cosa può diventare un file ):
>
> # mount tmpfs -t tmpfs /mnt/mem -o size=1G
> Nota: tmpfs farà uso anche dello spazio SWAP ( se esiste ). Se si
> vuole utilizzare solo la memoria RAM sostituire tmpfs con ramfs.
>
> 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:
> $ cat /dev/urandom > /mnt/mem/file$$.bin
> 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:
> $ cat /dev/urandom | gzip -9 > /mnt/mem/file$$.gz
> ( il comando termina restituendo un errore nel momento in cui il file
> generato raggiunge la dimensione della "sezione" di memoria montata )
>
> Il controllo sulla quantità di dati scritti si può avere con il comando dd
> $ dd if=/dev/urandom of=/mnt/mem/file$$ bs=1024K count=1024
> Il comando qui sopra andrà a scrivere 1GB di dati random nel file
> "/mnt/mem/file<pid del processo>"
>
> 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.
>
> Quindi mettendo tutto insieme:
> $ cpulimit -l 50 dd if=/dev/urandom of=/mnt/mem/file$$ bs=1024K count=1024
> Il comando occupa 1G di memoria ( valore raggiunto solo alla
> terminazione dello stesso) utilizzando il 50 % dei cicli di un
> processore.
> Una alternativa per definire la quantità di memoria massima
> utilizzabile da un processo o da un utente è il comando ulimit.
>
> $ ulimit -Sv 1024
> ( limita la memoria utilizzabile dall'utente che lo esegue a 1024
> kbytes )
>
> Non saranno soluzioni "eleganti" come quelle già proposte ma sono in
> stile Unix :)
>
> Saluti,
> Andrea
>
>
> Il giorno 13 marzo 2014 05:02, Technical GanXta <giecsar@gmail.com
> <mailto:giecsar@gmail.com>> ha scritto:
>
> Ciao a tutti,
>
> non scrivo molto spesso ma spero che l'argomento vi piacerà.
> Allo scopo di eseguire dei test sto creando una farm di macchine
> virtuali (penso di crearne 100).
>
> Come sistema operativo utilizzerò una distribuzione molto leggera
> chiamata TinyCore [0] (ringrazio a Matias per il suggerimento!).
> E' una distribuzione decisamente particolare. Ho creato una prima
> macchina con successo e posso già osservare che ha un footprint
> davvero piccolo, infatti utilizza solo 28MB di RAM circa.
>
> Voglio simulare un ambiente "enterprise", in cui varie (e tante!)
> macchine virtuali competono per accedere alle risorse fisiche (stiamo
> parlando di due host clusterizzati con uno storage condiviso, ma non
> entro nei dettagli dell'infrastruttura).
> Ogni singola macchina virtuale avrà un processore single core, single
> thread e 64MB RAM.
>
> Per rendere l'ambiente "realistico" pensavo di creare dei finti
> carichi di lavori che sono casuali e vengono generati in automatico
> all'avvio di ogni macchina virtuale.
> I carichi di lavoro devono consumare risorse CPU e RAM, ma non
> DISK o NETWORK.
> Vorrei quindi implementare uno script in sh che venga eseguito
> all'avvio e funzioni in questo modo:
>
> - genera un numero casuale N tra 0 e 7
> - caso 0: genera un carico di lavoro che utilizza il 10% della CPU e
> una percentuale casuale per quanto riguarda la RAM (<= 90%)
> - caso 1: genera un carico di lavoro che utilizza il 25% della CPU e
> una percentuale casuale per quanto riguarda la RAM (<= 90%)
> - caso 2: genera un carico di lavoro che utilizza il 60% della CPU e
> una percentuale casuale per quanto riguarda la RAM (<= 90%)
> - caso 3: genera un carico di lavoro che utilizza il 90% della CPU e
> una percentuale casuale per quanto riguarda la RAM (<= 90%)
> - caso 4: genera un carico di lavoro che utilizza il 10% della RAM e
> una percentuale casuale per quanto riguarda la CPU (<= 90%)
> - caso 5: genera un carico di lavoro che utilizza il 25% della RAM e
> una percentuale casuale per quanto riguarda la CPU (<= 90%)
> - caso 6: genera un carico di lavoro che utilizza il 60% della RAM e
> una percentuale casuale per quanto riguarda la CPU (<= 90%)
> - caso 7: genera un carico di lavoro che utilizza il 90% della RAM e
> una percentuale casuale per quanto riguarda la CPU (<= 90%)
>
> Le percentuali sono diciamo indicative e non importa se variano (anzi,
> sarebbe ancora meglio).
> Come potrei generare questi carichi di lavoro? Stavo pensando di
> creare dei loop infiniti (while : do <comando> done) che eseguono
> continuamente qualche comando standard di linux, potrebbe funzionare?
>
> Chi mi può aiutare? :)
>
> [0] http://tinycorelinux.net/
>
> --
> Mazilu "Technical GanXta" Teodor
> informatician, system administrator, geek
> XMPP: giecsar@gmail.com <mailto:giecsar@gmail.com>
> BitMessage: BM-2cU9vsEQWWJ9RUpjhV2xHkrZzUn7gyRCpZ
>
> --
> Sito BgLUG: http://www.bglug.it
> Mailing list: http://lists.linux.it/listinfo/bglug
>
>
>
>
Grazie mille Andrea, quando avrò un attimo di tempo farò una prova!
Saluti,
A presto
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.linux.it/pipermail/bglug/attachments/20140314/a4bac2ae/attachment-0001.html>
Maggiori informazioni sulla lista
bglug