~funderscoreblog cgit wikiget in touch

Protezione sovraccarico

Molto spesso, in un wiki i carichi della CPU e dei dischi fissi diventano molto alti a causa delle molte richieste che il wiki deve elaborare. Una carico molto alto significa che il wiki può rallentare o diventare totalmente inutilizzabile.

Questo può essere causato da:

Cosa si può fare?

MoinMoin tiene traccia delle richieste per nome utente (se hanno eseguito l'accesso) o per indirizzo IP (se non hanno eseguito l'accesso).

Se il conteggio delle richieste supera un limite impostato in un certo intervallo si verrà avvisati (verrà mostrato un avviso di "surge protection" al posto del normale output del wiki). Quando viene mostrato, leggerlo e fare quanto dice.

È utile fermarsi per alcuni minuti in quel caso (basta leggere quello che già si è visualizzato, andare a bere dell'acqua, ...). Lasciando passare un po' di tempo non ci saranno problemi (basta solo rallentare un po', così da non andare oltre il limite imposto).

Se non si fa una pausa, si ignorano gli avvisi e le richieste continuano a caricare il server, il wiki penserà sia in atto qualche cosa di strano e si verrà bloccati dal wiki.

Configurazione

La configurazione è fatta come sempre nel file wikiconfig.py. Questi sono i valori predefiniti:

    surge_action_limits = { # consente al massimo <count> richieste di <action> per <dt> secondi
        # action: (count, dt)
        'show': (20, 60),
        'raw': (20, 40),  # alcune persone lo usano per i css
        'AttachFile': (60, 60),
        'diff': (30, 60),
        'fullsearch': (5, 60),
        'edit': (10, 120),
        'rss_rc': (1, 60),
        'default': (30, 60),
    }
    surge_lockout_time = 3600 # secondi che si verrà bloccati quando vengono ignorati gli avvisi

Suggerimento

Proxy o firewall

Se si è dietro un grande proxy o un firewall (Cina? rete di grande azienda?) si potrebbero avere problemi con questa protezione in quanto tutte le richieste arrivano da un singolo indirizzo IP e possono sembrare degli utenti malintenzionati o un bot.

Per evitare questo basta collegarsi al wiki, così che vengano contate le proprie richieste (usa il proprio nome, non l'indirizzo IP per tenere traccia delle richieste).

Non ci sono problemi se il proprio proxy utilizza l'header x-forwarded-for con l'indirizzo IP reale.

Disabilitare la protezione

(!) Non è consigliato farlo. Se viene attivata troppo spesso, regolare i limiti alle proprie necessità. Anche all'interno di un wiki intranet un utente singolo può rendere il wiki inutilizzabile utilizzando qualche strano programma.

Se proprio si vuole disattivare:

    surge_action_limits = None # disabilita la protezione contro il sovraccarico