Page 1 of 1

[TIP] Migliorare l'utilizzo dei mirror Gentoo

Posted: Fri Nov 16, 2007 10:13 am
by Kernel78
Ciao a tutti, ho deciso di scrivere in un unico post alcuni trucchetti che uso (elaborati quando avevo tempo e riuscivo ancora a dormire) per razionalizzare l'utilizzo delle risorse che ci offrono i mirror Gentoo.

Requisiti:
- connessione internet flat
- pc always on
- vixie-cron (gli altri corn non li conosco quindi non mi sbilancio)
- eix
- mirrorselect

Usare il mirror più veloce
Per vari motivi soggettivi (es. affetto) la maggior parte di noi una volta effettuata la scelta del mirror da utilizzare tende a dimenticarsene e a non cambiarlo più in secula seculorum (come dimostra anche una discussione relativa al periodo dei problemi al mirror dell'uni).
Per poter essere considerevolmente sicuri di usare il mirror migliore per noi in un determinato momento possiamo fare affidamento a mirrorselect (app-portage/mirrorselect) in modo che si occupi di testare la velocità dei mirror e di modificarci il make.conf con il mirror migliore in quel momento.
Ovviamente la nostra pigrizia ci spinge a delegare qualcuno per verificare periodicamente lo stato dei mirror e in questo ci viene in aiuto vixie-cron (sys-process/vixie-cron).
Il trucco consiste nel mettere un file (io l'ho chiamato mirrorselect) in /etc/cron.weekly

Code: Select all

#!/bin/sh

command -v mirrorselect > /dev/null && mirrorselect -s 3 -q -D
diff /etc/make.conf /etc/make.conf.backup
(so che è migliorabile a livello di controlli ma non ho la testa per mettermi a farlo adesso
/EDIT:grazie a drizztbsd per la miglioria)
In sintesi questo script viene lanciato ogni settimana (lanciarlo più di frequente genererebbe troppo traffico inutile per i mirrror) e seleziona i 3 mirror migliori e li imposta in make.conf (facendo un backup di quello vecchio) e poi viene fatto un diff (in questo modo mi arriva una mail con i mirror precedenti e quelli attuali).

Evitare di collegarsi in massa (aka Partenza Intelligente)
Altra tematica inerente ad un utilizzo più razionale delle risorse è quella delle richieste contemporanee.
Ovviamente la Pigrizia (divinità protettrice dei programmatori) ci spinge a impostare in cron un comando per il sync automatico ma questo comporta un piccolo svantaggio.
La scarsità di entropia utilizzata dal cervello umano nella creazione di numeri casuali.
Statisticamente parlando sono sicuro che la massa utilizza prevalentemente orari interi (es. 10:00, 12:00 o nelle migliori ipotesi sfrutta anche i minuti 12:30), questo influisce anche su chi tenta di generare orari più casuali (es. 21:34) visto che statisticamente parlando si finisce sempre vicino alle richieste della massa.
Come poter sopperire a questo ? semplice sfruttiamo la nostra pigrizia e lasciamo che sia il nostro pc a generare un numero casuale per noi.

Code: Select all

0  22 * * *     root    sleep $RANDOM;eix-sync;emerge -uDNf world
inserito in /etc/crontab fa al caso nostro, in questo modo il sync partirà in un orario tra le 22:00:00 e le 07:06:07 con una distribuzione casuale (o pseudo casuale se vogliamo essere pignoli)

Se volete propormi dei miglioramenti o un lavoro come bracciante non siate timidi :lol:

Posted: Tue Nov 20, 2007 9:49 am
by Tigerwalk
Io un giardino incolto l'avrei....... :lol:

A parte gli scherzi, credo che sia un ottimo TIP
Ciao

Posted: Tue Nov 20, 2007 10:04 am
by Kernel78
fa piacere che qualcuno posso giudicarlo utile :wink:

Posted: Tue Nov 20, 2007 10:59 am
by drizztbsd
So di essere un pignolo ma non ce la faccio a vedere script sh fatti coi piedi :(

Code: Select all

#!/bin/sh
command -v mirrorselect > /dev/null && mirrorselect -s 3 -q -D
diff /etc/make.conf /etc/make.conf.backup

Posted: Tue Nov 20, 2007 12:44 pm
by Kernel78
drizztbsd wrote:So di essere un pignolo ma non ce la faccio a vedere script sh fatti coi piedi :(
ma non scherziamo neanche, ben venga ogni critica costruttiva (non conoscevo nemmeno command)

Grazie, modifico lo script nel primo messaggio.

Re: [TIP] Migliorare l'utilizzo dei mirror Gentoo

Posted: Tue Nov 20, 2007 3:11 pm
by skypjack
Kernel78 wrote:Se volete propormi dei miglioramenti o un lavoro come bracciante non siate timidi :lol:
Sei disponibile per dare una mano in un trasloco? Pagamento posticipato ... :lol:
Scherzi a parte, ottimo TIP! :wink:

Posted: Fri Sep 03, 2010 9:03 am
by cloc3
rileggevo questo tip.
non capivo bene quel comando echo.

allora ne farei una scusa per riesumare il topic:

Code: Select all

s939 ~ # tail -n1 /etc/crontab 
0  22 * * *     root    sleep $((9*3600*${RANDOM}/(2**15)));eix-sync;emerge -uDNf world
il 9 controlla il numero di ore dopo le 22.

Posted: Fri Sep 03, 2010 3:17 pm
by Kernel78
cloc3 wrote:rileggevo questo tip.
non capivo bene quel comando echo.

allora ne farei una scusa per riesumare il topic:

Code: Select all

s939 ~ # tail -n1 /etc/crontab 
0  22 * * *     root    sleep $((9*3600*${RANDOM}/(2**15)));eix-sync;emerge -uDNf world
il 9 controlla il numero di ore dopo le 22.
a questo punto forse è meglio fare direttamente un

Code: Select all

sleep $RANDOM
anzi, adesso correggo :)

Posted: Fri Sep 03, 2010 4:48 pm
by cloc3
Kernel78 wrote: a questo punto forse è meglio fare direttamente un

Code: Select all

sleep $RANDOM
anzi, adesso correggo :)
dipende. l'esempio di calcolo aritmetico bash è istruttivo e utile, perché aggiunge un grado di libertà.

ma, oggettivamente, è anche superfluo.
lo stesso command, per la verità, non ha gran ragion d'essere.

Posted: Sat Sep 04, 2010 3:50 pm
by Kernel78
cloc3 wrote:
Kernel78 wrote: a questo punto forse è meglio fare direttamente un

Code: Select all

sleep $RANDOM
anzi, adesso correggo :)
dipende. l'esempio di calcolo aritmetico bash è istruttivo e utile, perché aggiunge un grado di libertà.
istruttivo, magari ma utile non direi ...
ma, oggettivamente, è anche superfluo.
lo stesso command, per la verità, non ha gran ragion d'essere.
non mi ricordo perchè ma quando me lo aveva suggerito drizztbsd aveva senso ...