Kernel.org, il repository ufficiale del kernel Linux, sta affrontando una crescente pressione sui suoi server a causa dei crawler automatizzati. Questi strumenti, utilizzati per raccogliere dati dai siti web, consumano una parte significativa delle risorse del server, in particolare la potenza di calcolo.

Kernel.org gestisce circa 6 milioni di richieste giornaliere per singole pagine di commit, con circa un terzo di queste che riesce a bypassare i sistemi di protezione. Questo comportamento ha un impatto notevole sull'infrastruttura, con 14-16 CPU core su 90 sempre impegnati a convertire i commit Git in HTML per i crawler.

Il problema principale è che i crawler accedono ai dati commit per commit invece di clonare i repository e lavorare localmente. Questo approccio inefficiente aumenta il carico sul server, nonostante i dati siano già liberamente accessibili tramite Git.

L'architettura di git.kernel.org, con oltre 1,48 milioni di commit e centinaia di fork, offre un numero enorme di URL che i crawler possono accedere, peggiorando ulteriormente la situazione.

Kernel.org ha tentato diverse soluzioni, come il blocco di IP e reti specifiche, ma i crawler si sono adattati utilizzando reti proxy residenziali e mobili. Recentemente, è stato implementato Anubis, un sistema di proof-of-work che richiede agli utenti di risolvere una sfida prima di accedere al sito. Tuttavia, anche i crawler hanno sviluppato metodi per superare questa barriera.

In risposta a queste sfide, Kernel.org sta valutando misure più drastiche, come la riduzione del numero di URL accessibili ai crawler e il limite delle azioni più dispendiose in termini di risorse per gli utenti anonimi. Nonostante queste restrizioni, i repository e i dati di sviluppo del kernel Linux rimarranno accessibili al pubblico.

Prerequisiti

  • Accesso a un sistema con connessione Internet
  • Conoscenza base di Git e repository Git
  • Capacità di navigare su git.kernel.org
  • Conoscenza dei concetti di base di crawling e scraping web
  • Accesso ai post di Konstantin Ryabitsev su Kernel.org per ulteriori dettagli

Procedura: Come ridurre l'impatto dei crawler su Kernel.org

Seguendo questa guida, imparerai come configurare Anubis per mitigare l'impatto dei crawler su Kernel.org.

  • Accedi al server che ospita Kernel.org.
  • Installa Anubis seguendo le istruzioni ufficiali. Puoi trovare il repository Git di Anubis a questo indirizzo: https://github.com/kernelci/anubis.
  • Configura Anubis per bloccare i crawler. Modifica il file di configurazione di Anubis per impostare il livello di difficoltà del proof-of-work. Ad esempio, puoi impostare il parametro difficulty su un valore elevato per rendere più difficile per i crawler risolvere il challenge.
  • Avvia Anubis e verifica che sia in esecuzione correttamente. Puoi farlo controllando i log di Anubis per assicurarti che non ci siano errori.
  • Monitora l'impatto di Anubis sui crawler. Controlla i log di Kernel.org per vedere se il numero di richieste dei crawler è diminuito.
  • Se necessario, aggiusta la configurazione di Anubis per ottimizzare ulteriormente le prestazioni. Ad esempio, puoi modificare il parametro block_time per bloccare i crawler per un periodo di tempo più lungo.

Verifica e Troubleshooting

Alla fine di questa guida, sarai in grado di testare il funzionamento del sistema e risolvere eventuali problemi legati ai crawler su Kernel.org.

Test di Funzionamento

  • Verifica del carico CPU: Monitora l'utilizzo della CPU sui server di Kernel.org. Se circa il 20% del potere di calcolo totale è dedicato alla gestione di scrapers automatizzati, il sistema è sotto pressione.
  • Controllo delle richieste: Verifica il numero di richieste giornaliere per le pagine dei commit individuali. Se superano i 6 milioni, è probabile che i crawler stiano sovraccaricando il sistema.
  • Analisi del traffico: Utilizza strumenti di monitoraggio del traffico per identificare le fonti delle richieste. Se una parte significativa proviene da IPs sospette o reti proxy, è necessario intervenire.

Risoluzione dei Problemi

  • Blocco di IPs e reti: Implementa misure per bloccare IPs e reti sospette. Tuttavia, tieni presente che i crawler possono adattarsi utilizzando proxy residentiali e mobili.
  • Implementazione di Anubis: Configura Anubis per richiedere un proof-of-work ai visitatori. Questo può ridurre il numero di richieste, ma i crawler potrebbero adattarsi risolvendo le sfide più complesse.
  • Limitazione delle URL crawlabili: Considera la possibilità di ridurre il numero di URL accessibili ai crawler e limitare le azioni che consumano molte risorse per gli utenti anonimi.
  • Mantenimento dell'accesso pubblico: Assicurati che i repository del kernel Linux e i dati di sviluppo rimangano accessibili al pubblico, nonostante le misure di controllo del traffico.

Per ulteriori dettagli, consulta il post di Ryabitsev Creepy Crawlies.

Sintesi didattica e invito alla pratica

org, utilizzando circa il 20% della potenza CPU totale del progetto. Questo problema è causato principalmente dalla richiesta di pagine di commit individuali, nonostante i dati siano già liberamente accessibili tramite Git.

  • Impatto attuale: Kernel.org gestisce 6 milioni di richieste al giorno, con 14-16 CPU core sempre impegnati a convertire commit Git in HTML per i crawler.
  • Soluzioni attuate: Kernel.org ha implementato Anubis, un sistema di proof-of-work, e ha tentato di bloccare determinati IPs e reti, ma i crawler hanno adattato le loro strategie.

Per approfondire ulteriormente il problema e le soluzioni proposte, consulta il post di Konstantin Ryabitsev.

Mettiti alla prova: analizza il traffico del tuo sito web e identifica eventuali bot o crawler che potrebbero compromettere le prestazioni. Implementa soluzioni simili a quelle descritte per ottimizzare le risorse del tuo server.

Nota Editoriale e Disclaimer

Le guide e i contenuti pubblicati su GoYou sono frutto di attività di ricerca e analisi indipendente, a scopo informativo, educativo e di approfondimento.

GoYou non costituisce una testata giornalistica né un prodotto editoriale ai sensi della Legge n. 62/2001 e non svolge attività di informazione in tempo reale.

Il progetto GoYou non fornisce consulenza professionale, tecnica, legale o finanziaria e declina ogni responsabilità per l’uso improprio delle informazioni pubblicate.

Nel settore Crypto, ogni investimento comporta rischi: si invita il lettore a informarsi sempre in modo autonomo prima di assumere qualsiasi decisione.