Email

4 trucchi essenziali per ottimizzare MailStore

12 Luglio 2017

MailStore è un prodotto estremamente versatile, in grado di funzionare con la maggior parte delle piattaforme di posta rispondendo alla quasi totalità delle esigenze che l’utenza esprime. Tuttavia è possibile che in qualche caso particolare, come un mail server di grandi dimensioni che deve gestire job multipli o grandi quantità di account di posta, ci si trovi a toccare i limiti del proprio hardware o della banda disponibile.

Ottimizzare non è difficile e si riduce in buona parte a capire quanto velocemente e quanto spesso occorra aggiungere la nuova posta all’archivio. La tentazione al momento della prima installazione è quella di adottare un approccio del tipo il più rapidamente possibile, quando in realtà questo significherebbe rischiare di tirare inutilmente il collo alle risorse sottostanti.

In questo post riassumo alcuni semplici suggerimenti grazie ai quali potrai ottimizzare la tua installazione di MailStore in base alle tue esigenze di business effettive.

1. Usa il job monitor

Il modo migliore per capire quel che succede all’interno di MailStore è quello di controllare la frequenza dei job, il tempo richiesto da ciascuno di essi e, in particolare, la presenza di eventuali sovrapposizioni.

A questo scopo esiste il job monitor, a cui occorre fare continuamente riferimento man mano che si applicano nuove regolazioni al sistema.

Un altro modo per verificare il carico è, ovviamente, quello di usare Windows Task Manager, che permette di conoscere il livello di utilizzo sia della memoria che della CPU associato al processo MailStoreServer.exe / MailStoreServer_x64.exe.

Sui server più impegnati dove girano molteplici thread (vedi il paragrafo thread più avanti), il consumo della memoria può crescere significativamente senza che ce ne si accorga: in questo caso occorre ridurre il numero dei thread simultanei.

2. Non sovrautilizzare la modalità automaticaLa modalità automatica è stata introdotta nella versione 9 di MailStore: essenzialmente manda in esecuzione un job, attende per un intervallo di 5 minuti (variabile a piacere), lo rilancia nuovamente e così via senza sosta.

Se il completamento del job richiede solo pochi secondi, allora quel che succede è che ogni 5 minuti viene ripetuta l’esecuzione di un’attività di piccola portata.
Al contrario, se il job richiede la sincronizzazione di un gran numero di mailbox utente, il tempo necessario potrebbe essere anche di 15 minuti, cui seguirebbero solo 5 minuti di pausa prima di riprendere da capo: questo comporterebbe un livello discretamente alto di utilizzo del server per il 75% del tempo.

Un server impegnato per tre quarti della giornata è una situazione non certo ideale. Potresti aumentare l’intervallo di attesa, ma prima o poi ti troveresti comunque a dover ricorrere alla schedulazione dei job come spiegheremo in seguito.

Una nota finale: tutti i job automatici vengono lanciati all’avvio del servizio MailStore. Questo significa che eseguendo il reboot della macchina o anche solo l’avviamento del servizio si verifica il massimo carico possibile sul server, sulla rete e sulle altre risorse, il che può diventare una questione significativa nel caso di deployment di grandi dimensioni.

3. Perché non ricorrere alla schedulazione dei job?

La funzione di job scheduler presente all’interno di MailStore viene spesso sottovalutata perché normalmente non effettua le archiviazioni con una frequenza altrettanto elevata rispetto a quella resa possibile dalla modalità automatica. Ma è un’alternativa che dovrebbe essere tenuta in considerazione quando il completamento di un job richieda più di 15 minuti.

In fondo questa non è altro che una decisione di business relativa alla velocità con cui si desidera disporre della posta all’interno dell’archivio. I messaggi si trovano pur sempre nella mailbox, ovviamente, quindi se puoi sopportare l’idea che un nuovo messaggio possa essere ricercabile all’interno dell’archivio dopo mezz’ora o un’ora anziché immediatamente potrai evitare un sacco di carico sul tuo server.

Con la schedulazione dei job non devi far altro che scegliere di mandarli in esecuzione con la frequenza che preferisci: ogni X minuti, giorni, settimane o mesi.

Qualunque sia il job che configuri, il mio consiglio è quello di assegnargli un nome chiaro in modo tale che si possa immediatamente capire se si tratta di un job automatico, manuale o schedulato.

4. Usa la giusta quantità di “thread”

Nella mia esperienza, quando si assiste a un rallentamento di un server MailStore è solitamente in conseguenza di un numero eccessivo di thread in corso.
Questo è particolarmente vero quando si sta utilizzando un job a mailbox multiple, uno nel quale è possibile accedere simultaneamente a più caselle mailbox del server. Il default per questo genere di job è di 5 thread, ma se vi sono multipli job che si connettono a multiple mailbox si finisce ben presto ad avere numerosi job sovrapposti che consumano molti più thread.
Ciascun thread riserva un proprio spazio di memoria, per cui se dovessi notare che il tuo processo MailStore Server sta consumando una quantità enorme di memoria è molto probabile che la colpa sia dell’eccessivo numero di thread contemporaneamente attivi.

Durante i nostri test non abbiamo riscontrato grandi differenze nel throughput complessivo di archiviazione riducendo il numero dei thread, pertanto un altro consiglio è quello di ridurre i job a uno o due thread.
La conseguenza è che un job incaricato di archiviare solamente una mailbox per volta può spesso risultare più performante e incorrere in un minor rischio di timeout.

Se il tuo server MailStore è spezzo carico e “sotto sforzo”, prova ad applicare qualcuno di questi suggerimenti e fammi sapere se la situazione migliora.

Tratto dal blog Zen Software 

Autore
Gabriele Palumbo
Nasco a Bologna ma ho vissuto l’infanzia in Piemonte, l’adolescenza in Puglia e la maturità tra Umbria, Toscana, Puglia, Emilia-Romagna e Lombardia (e non è ancora finita). Ho avuto quindi modo di entrare in contatto con diversi ambienti e contesti sociali. Una formazione umanistica (Sociologia della devianza a Perugia e Relazioni Internazionali a Pisa), passione per la scrittura e decine di corsi sul mondo digital sono state ottime basi per entrare nel campo del marketing e della comunicazione. Nel 2015 pubblico il romanzo breve “Ci siamo solo persi di vista” e, a inizio 2019, pubblico la biografia della rock band “Ministri”, entrata in poche ore nei Top Sellers di Amazon. Un romanzo è in fase di scrittura. Terminati gli studi entro attivamente nel mondo della musica, organizzando svariati concerti e un festival, e della comunicazione digitale, gestendo la linea editoriale di blog e social e ricoprendo ruoli di copywriter e content editor. Nel 2017 entro nel collettivo Dischirotti. occupandomi dei contenuti web, mentre il 2018 mi vede prima nell’agenzia FLOOR concerti come booking agent per svariati artisti e poi in VOX concerti come direttore di produzione. Tornato a Bologna inizio a collaborare con l’etichetta discografica Manita Dischi come project manager e svolgo un tirocinio presso l’agenzia di marketing e comunicazione digitale Engine Lab, nel ruolo di content editor. Dal 2020 al 2023 ho collaborato, sia come editor che come contributor, con Fantastico.esclamativo, newsletter letteraria e rivista culturale creata da Alberto Guidetti de Lo Stato Sociale. Ogni due sabati invio “Capibara”, una newsletter che tratta di attualità e meme in un progetto che, occasionalmente, porto anche dal vivo sotto forma di Stand-Up. Attualmente ricopro il ruolo di Channel Marketing Manager in Achab, con particolare focus su contenuti editoriali, analytics, marketing automation e CMS.
Commenti (4)
Iscriviti
Notificami
guest
4 Commenti
Più vecchio
Più recente Più votato
Inline Feedbacks
Guarda tutti i commenti
Luca Sasdelli
Luca Sasdelli
6 anni fa

Ciao, personalmente trovo molto utile impiegare la linea di comando di MailStore: creo un file batch con tutti i comandi di archiviazione utente uno per uno, e lo lancio con lo scheduler di Windows. In questo modo MailStore esegue sempre un’operazione di archiviazione alla volta e non ho "buchi" di tempo fra una casella e la successiva.

Ricordo che il comando CLI si ottiene già pronto dall’interfaccia amministrativa di MailStore, clic col tasto destro sull’operazione da automatizzare, "Crea operazione in " e quindi "Copia riga di" (finisce proprio così :-))

Claudio Panerai
Claudio Panerai
6 anni fa

@Luca: immagino che tu allora sappia tutto, ad ogni modo ti segnalo che abbiamo una KB sull’argomento da te indicato

Stefano Martinelli
Stefano Martinelli
2 anni fa

Complimenti ottimi consigli e spiegazioni.
Una domanda: Installato MailStoreHome senza la funzione schedule.
Ho settato un schedule di Win10 che a intervalli di 1 volta a settimana dovrebbe far partire a orari stabiliti
il link a desktop del PROFILO creato dal programma per avviare l’archiviazione.
Provato il tutto non si avvia il programma,qualche delucidazione e motivo? grazie mille in anticipo. Stefano.

Bruno Rinoldi
Bruno Rinoldi
2 anni fa

@Stefano Martinelli: a lanciare dalla schedulazione di Windows non il collegamento sul desktop ma l’eseguibile lanciato dal collegamento: si presenta all’incirca così:

MailStoreHome.exe /c archive –id=”X”

dove X è l’ID del job di archiviazione che lanci. Nelle proprietà del collegamento sul desktop dovresti trovare la riga di comando completa.
Oppure usa Mailstore Server: ha un sistema integrato di schedulazione che non si appoggia su quello di Windows e funziona benissimo.