>
MENU
Ubuntu-Unity-600x337

Ubuntu Unity è lento, lo dice un test di...

TS119P_02

Qnap TS-x19P+: i NAS pensati per la casa e...

17 novembre 2010 Visualizzazioni: 417 Hardware, Software

Usare Linux anche quando le risorse sono occupate, basta una patch!

CPU e memoria RAM sono al limite, il sistema sta per bloccarsi ma avete bisogno di effettuare altre operazioni: come fare? Upgrade hardware? No, basta una patch.


Immaginate questa situazione, quasi apocalittica visto il quantitativo di memoria RAM e le frequenza delle CPU che caratterizzano tutti i computer oggi presenti sul mercato: tutte le risorse sono occupate, il pinguino non ne vuole proprio più sapere di andare avanti (giustamente). Come fare? Fino a qualche giorno fa una soluzione non c’era, dunque sarebbe stato necessario effettuare un upgrade hardware. Oggi, invece, grazie ad una piccola patch del kernel hacker Mike Galbraith è possibile continuare ad utilizzare la propria macchina anche quando le risorse del sistema sono sature.

Come? In pratica la patch va ad agire sullo scheduler, creando automaticamente dei test group per ogni TTY e permettendo così di ridurre la latenza massima di un decimo e quella media di ben 60 volte. Un hack fenomenale, apprezzato anche da Linus Torvalds. Nei video qui in basso potete vedere la patch in azione su un sistema eccessivamente caricato e nel secondo la risposta di un kernel senza la patch. La differenza c’è, eccome se c’è!

twittergoogle_pluslinkedinmail
  • Ito

    Era ora si potrebbe dire! :) Ad oggi l’unica soluzione era quella di usare le patch di Con Kolivas, mai accettate mainline, per avere un buon scheduler in linux lato desktop.

    Il nuovo scheduler di Galbraith è già presente nel kernel 2.6.37-rc2 per chi volesse provarlo!
    Veramente un ottimo lavoro :)

    • morbo84

      Dove hai visto che è presente nel 2.6.37-rc2? io nel changelog non lo trovo…

      • morbo84

        Ops… scusa, non avevo visto la tua risposta a viralex…

  • viralex

    Non è stato scritto un nuovo scheduler, è una semplice modifica di circa 200 linee. che aggiunge la funzionalità di autogroup dei task.

    Non è presente nel kernel 2.6.37-rc2, probabilmente ci sarà nel 38. Se vi va di provarlo dovete salvarvi la patch da qui http://lkml.org/lkml/2010/10/19/123 o da link con versioni più recenti e patchare a mano la versione 2.6.36 o 2.6.37-rc1/2

    • Ito

      Ops, é vero…non è nella rc2, colpa mia, avevo usato un PKGBUILD che includeva già la patch :)

  • http://www.shadowlionheart.it SHADOW LIONHEART(c) - Mannara Valentino Francesco

    Quindi il kernel sarà ancora più veloce e anche le macchine vecchie ne beneficerebbero mica poco.
    E bravo Mike. Eheh.

  • http://matrobriva.altervista.org matrobriva

    Interessantissimo… verrà incluso di default nel kernel, per caso?

  • Danielsan

    Ma quanti processori ha quel PC? ;D

  • Marco

    A valle della patch di Galbraith, c’e’ stata una serie di commenti da parte di Pottering (autore di systemd) per dire che la soluzione utilizzata era “scorretta”.
    L’ottimizzazione fatta in kernel-space avrebbe dovuto essere in user-space doce c’e’ maggior controllo.

    Di fatto si tratterebbe solo di isolare i task di un utente (non di una console tty) in un apposito container (cgroup). E come tutta risposta, lo stesso Pottering ho prodotto una serie di patch per systemd che di fatto equivale alla patch di Galbraith (ma stavolta in user-space).

    La soluzione e’ IMHO la soluzione corretta ed e’ la piu’ flessibile: provare per credere.
    Ho installato l’ultimo systemd da git ed e’ assolutamente magnifico (forse meglio dello scheduler Kolivas) in qunato a responsivita’ e latenza

    Marco

    • Ito

      Interessante…quindi basterebbe installare systemd da git senza bisogno di patchare il kernel per avere i medesimi risultati? Provo ;)

  • Verme

    scusate la mia ignoranza… ma per noi profani quando sarà possibile usufruire di queste prestazioni? esiste una distro ke applica questa patch?

    • Ito

      Io su Arch faccio così:

      $ yaout -S kernel26-autogroup

      per avere il kernel 2.6.36 con la patch in questione

  • asd

    Seppure tecnicamente non si parla di trovata sensazionale (visto che implementa semplicemente uno scheduler più interattivo)è un gran bene che se ne inizi a parlare visto che per un utente desktop(molto meno per un server che ha l’esigenza contraria)è essenziale che il computer risponda subito ai comandi anche se dovesse rallentare di qualche ms gli altri programmi.

    Sembra una cosa secondaria magari ma alla fine è la cosa primaria di un S.O. con GUI visto che un utente non può aspettare che i programmi facciano i cavoli loro per poter riavere il controllo del suo pc.