Disattivare atime su un filesystem


27

Sto configurando un set di repliche mongoDB e una delle prime cose che suppongo di fare è disattivare atime sul file system. Dopo aver studiato un po 'questo, non sono contrario a farlo, ma devo chiedere, che cosa usa atime? Ho cercato tra le interwebs e ho trovato ben poco nel modo in cui "questo applciaiton o questo processo usa atime e saresti stupido se lo disattivassi" tipi di avvertimenti, ma essendo una persona paranoica per natura, devo chiedermi.

Quindi, cosa usa atime e se lo spengo, cosa potrebbe rompersi?

Risposte:


25

mutt, un client di posta elettronica, utilizza i tempi di accesso ai file per monitorare la nuova posta in arrivo in una cassetta postale in formato mbox. Apparentemente, questo problema non è grave ed è facile aggirare .

A parte questo, è difficile trovare esempi di cose che si rompono noatime. Gestisco un numero di server Linux con noatimesu tutti i filesystem e non ricordo di aver mai visto alcun problema attribuibile noatime.

Se sei preoccupato per l'uso noatimein generale, potresti dedicare un filesystem separato per le tue cose mongoDB e montare solo quel filesystem con noatime.

MODIFICARE

Ho trovato un interessante blog su kerneltrap.org che cita alcune discussioni tra sviluppatori Linux (Linus Torvalds, Ingo Molnar, Alan Cox e altri) sull'argomento atime. Nella seconda email di Ingo, dice questo:

... non ho nessuna vera lamentela riguardo ext3 - con la qualifica obbligatoria che "noatime, nodiratime" in / etc / fstab è un must. Questo accelera le cose in modo molto visibile, specialmente quando si accede a molti file. È un po 'strano che ogni desktop e server Linux sia danneggiato da un notevole rallentamento delle prestazioni di I / O a causa dei costanti aggiornamenti di atime, mentre ci sono solo due utenti reali: tmpwatch [che può essere configurato per usare ctime quindi non è un grosso problema] e alcuni strumenti di backup. (Ok, e credo anche per posta.) Da decine di migliaia di domande. Quindi, per la maggior parte dei carichi di lavoro dei file, diamo a Windows un vantaggio prestazionale del 20-30%, quasi per nulla.


10

Gli strumenti che eseguono il polling per l'utilizzo dei file come i pulitori di file temporanei lo usano. Puoi aggirare questo su alcuni filesystem e SO usando relatimeinvece, che aggiorna l'atime solo dopo che è trascorsa una certa durata dall'ultimo aggiornamento.


8

È inoltre possibile creare un punto di montaggio separato per il set di repliche mongoDB. È quindi possibile impostare il parametro noatime su quel mountpoint solo senza influenzare altri programmi.


4

Come seguito qui, relatime stato impostato il default nel kernel in 2.6.30 che è stato rilasciato intorno al periodo di marzo 2009. Ciò significa che i guadagni che vedi dalle impostazioni di mezzogiorno saranno meno su qualsiasi kernel moderno.

È ancora una raccomandazione perché c'è ancora un guadagno in termini di prestazioni per MongoDB, ma fintanto che sei su una versione del kernel ragionevolmente attuale non è essenziale come una volta.

Inoltre, oltre al software menzionato qui, ho anche visto atime utilizzato dagli strumenti di backup.


1

Vorrei solo sottolineare un punto @Steven Monday: utilizzare un filesystem separato.

Per un database questa è sempre una buona opzione e ti dà molta più flessibilità nell'ottimizzare le prestazioni del database con il piccolo inconveniente di un punto di montaggio extra da gestire. Di solito ti darà più opzioni per lo snapshot del database anche per i backup (ancora più utile nei casi in cui puoi snapshot e backup della replica anziché del master)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.