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
Claudio Panerai
Gli ultimi prodotti che vi ho portato, nel 2020: Vade Secure Il primo sistema antispam/antihishing/antimalware basato sull'intelligenza artificiale e appositamente progettato per Office 365. Naturalmente a misura di MSP. ID Agent Piaffaforma che consente agli MSP di monitorare le credenziali (proprie e dei clienti) che sono in vendita nel dark web.
Nato a Ivrea nel 1969, è sposato e padre di due figlie. Laureato in Scienze dell’Informazione nel 1993, ha dapprima svolto numerose consulenze e corsi di formazione per varie società per poi diventare responsabile IT per la filiale italiana del più grande editore mondiale di informatica, IDG Communications. Dal 2004 lavora in Achab dapprima come Responsabile del Supporto Tecnico per poi assumere dal 2008 la carica di Direttore Tecnico. Giornalista iscritto all’albo dei pubblicisti, dal 1992 pubblica regolarmente articoli su riviste di informatica e siti web di primo piano. E' stimato da colleghi e clienti per la schiettezza e onestà intellettuale. Passioni: viaggi, lettura, cinema, Formula 1, sviluppo personale, investimenti immobiliari, forex trading. Claudio è anche su LinkedIn e Facebook.
Commenti (4)
guest
4 Commenti
Più vecchio
Più recente Più votato
Inline Feedbacks
Guarda tutti i commenti
Luca Sasdelli
Luca Sasdelli
5 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
5 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
1 anno 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
1 anno 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.