[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