[bglug] TinyCore Linux e quant'altro
Technical GanXta
giecsar@gmail.com
Ven 18 Apr 2014 20:14:12 CEST
On 20/03/2014 23:56, Technical GanXta wrote:
>
>
> On 20/03/2014 23:33, il Katta wrote:
>> Purtroppo ieri ero via per lavoro, temo lo sarò anche nelle prossime
>> settimane -.-'
>>
>> In tinycore bash è presente nei repository ( se non sbaglio ).
>> Sarebbe pensabile installarlo sulle tue macchine?
>> ( non è neccesario usarlo come shell dell'utente, è sufficiente che
>> sia installato in /bin/bash ).
>> Ad ash mancano funzionalità di cui lo script fa uso.
>> Se dai un occhio all'ultima revisione dello script[0] sto provato ad
>> emulare il funzionamento di cpulimit.
>> ( lo script utilizza cpulimit se installato, altrimenti carica la
>> funzione omonima ).
>>
>> Saluti
>>
>> [0] https://gist.github.com/il-katta/9582040
>>
>>
>>
>
> Hmmm.. potrebbe esser un problema.
> Lo script originale che mi proponevi pesava 2.2KB circa. (ottimo!)
> Il programma fatto ieri all'incontro (vedi sotto) pesa 7.5KB con 5
> librerie linkate staticamente (più che accettabile).
>
> bash occupa 6.5MB una volta installata. Sono tanti, infatti in
> TinyCore e' stata sostituita con busybox proprio per questa ragione.
>
> Dunque ringraziandoti ancora una volta, Dario, mi permetto di
> pubblicare il programma consume.c :
>
> #include <stdlib.h>
> #include <stdio.h>
> #include <unistd.h>
> #include <stdint.h>
> #include <time.h>
>
>
> int main() {
> srand(time(NULL));
> int rmem = (rand()%89)+10;
> printf("will use %d%% of free memory\n", rmem);
> int rcpu = (rand()%89)+10;
> printf("will use %d%% of cpu\n", rcpu);
> //printf("%ld",0);
> long freemem = sysconf(_SC_AVPHYS_PAGES) * sysconf(_SC_PAGE_SIZE);
> malloc((int) rmem*0.01*freemem);
> printf("%ju\n", (uintmax_t)clock()/CLOCKS_PER_SEC);
> uint64_t j = 0;
> long target = (int) rcpu*0.01*28000;
> long to_sleep = 100 * (100 - rcpu);
> while(1){
> for (long i=0; i<target; i++){
> j++;
> }
> nanosleep((struct timespec[]){{0, to_sleep}}, NULL);
> }
> //printf("%ju\n", (uintmax_t)CLOCKS_PER_SEC);
> printf("%lf\n", ((double)clock()/CLOCKS_PER_SEC));
> //while()
> return 0;
> }
>
> Come abbiamo visto c'e' qualcosa che non va in quanto l'utilizzo reale
> della CPU/memoria non combaccia con i valori settati dal programma.
> Oggi ho provato ad installare un'altra macchina virtuale con Fedora e
> gcc per continuare lo sviluppo del programma, ma non sono riuscito a
> scaricare il pacchetto gcc (e putroppo non ho avuto tempo per fare
> troubleshooting).
>
> Ora, cpulimit non sembra particolarmente pesante ma non se e'
> possibile installarlo su TinyCore in quanto la distribuzione utilizza
> questo formato particolare detto tcz.
>
> Devo valutare bene tutto, intanto grazie ancora a tutti!
>
>
Ciao Katta,
tralasciando il discorso della bash e di cpulimit (che penso di
installare), l'utilizzo della CPU non risulta stabile. Anzi mi risulta
100% casuale.
Ho fatto le prove su una macchina virtuale con Fedora 20.
Potrebbe essere colpa dello scheduler che è troppo intelligente e,
ottimizzando l'esecuzione dei thread, riduce (o comunque fa variare
costantemente) l'utilizzo della CPU?
--
Mazilu Teodor "Technical GanXta"
IT afficionado & FOSS evangelist
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.linux.it/pipermail/bglug/attachments/20140418/dc53a580/attachment.html>
Maggiori informazioni sulla lista
bglug