18 Luglio 2023

Velocizzare letture e scritture su disco con Linux, salvaguardandone l’usura grazie alle opzioni di mounting noatime e nodiratime

Due semplici attributi per migliorare la velocità e le performance del dischi e salvaguardarne l’usura.

È importante comprendere come ottimizzare le operazioni di lettura e scrittura su disco in un sistema Linux per garantire prestazioni elevate, una maggiore durata del disco e un’efficienza complessiva del sistema. Con l’avanzamento della tecnologia, abbiamo visto un aumento dell’uso di dispositivi di memorizzazione a stato solido come le unità SSD e NVMe. Queste unità sono conosciute per la loro velocità e resistenza, ma hanno un ciclo di vita limitato di operazioni di lettura e scrittura.

Una delle tecniche che possiamo utilizzare per prolungare la durata di questi dispositivi e migliorare le prestazioni del sistema è l’uso delle opzioni di montaggio ‘noatime’ e ‘nodiratime’. Queste opzioni ci permettono di limitare l’aggiornamento dei metadati di accesso, riducendo così il numero di scritture sul disco e aumentando le prestazioni di I/O. In questo articolo, esploreremo in dettaglio come queste opzioni funzionano e come possono essere applicate per migliorare le prestazioni del sistema e la longevità del disco.

Comprendere la tecnologia delle unità SSD e NVMe

Per poter ottimizzare pienamente le operazioni di lettura e scrittura su un sistema Linux, è fondamentale avere una comprensione chiara dei dispositivi di archiviazione di dati utilizzati. In questa sezione, ci concentreremo su due tipi di dispositivi di memorizzazione dati largamente utilizzati oggi: le unità SSD (Solid State Drives) e NVMe (Non-Volatile Memory Express).

SSD VS nVME

Le unità SSD: velocità e resilienza

Le unità SSD, o Solid State Drives, hanno rivoluzionato il mondo della memorizzazione dati. A differenza dei tradizionali hard disk (HDD), che utilizzano dischi meccanici e testine di lettura/scrittura mobili, le unità SSD non hanno parti mobili. Questo le rende non solo più robuste e resistenti agli urti, ma anche molto più silenziose.

Il cuore delle unità SSD è la memoria flash, una forma di memoria non volatile che conserva i dati anche in assenza di alimentazione. Questa memoria flash è composta da celle di memoria in grado di memorizzare elettroni, che vengono utilizzati per rappresentare i dati. A differenza degli hard disk, che devono fisicamente spostare una testina di lettura/scrittura per accedere ai dati, le unità SSD possono accedere rapidamente a qualsiasi cella di memoria flash. Questo permette alle unità SSD di avere tempi di accesso ai dati estremamente veloci, migliorando significativamente le prestazioni generali del sistema.

Le unità NVMe: un passo avanti nella tecnologia SSD

Le unità NVMe, o Non-Volatile Memory Express, rappresentano l’evoluzione delle unità SSD. Mentre le unità SSD tradizionali utilizzano interfacce come SATA (Serial ATA) o SAS (Serial Attached SCSI), che sono state originalmente progettate per gli hard disk, le unità NVMe utilizzano l’interfaccia PCI Express (Peripheral Component Interconnect Express) del sistema.

PCI Express è un’interfaccia ad alta velocità che collega i dispositivi direttamente al processore del sistema, permettendo loro di comunicare molto più velocemente di quanto non permettano le interfacce SATA o SAS. Questo consente alle unità NVMe di raggiungere velocità di trasferimento dati significativamente più elevate rispetto alle unità SSD tradizionali.

Tuttavia, come le unità SSD, anche le unità NVMe hanno un limite al numero di operazioni di lettura e scrittura che possono sopportare prima di iniziare a mostrare segni di usura. Questo limite, noto come TBW (Total Bytes Written) o DWPD (Drive Writes Per Day), rappresenta la quantità totale di dati che può essere scritta sull’unità durante il suo ciclo di vita. Superare questo limite può portare a un degrado delle prestazioni o addirittura a un guasto dell’unità.

In conclusione, le unità SSD e NVMe rappresentano un passo avanti significativo rispetto agli hard disk tradizionali in termini di velocità e resilienza. Tuttavia, è importante tener conto del loro limite di operazioni di lettura e scrittura per assicurarsi che durino il più a lungo possibile e continuino a fornire prestazioni elevate. Le opzioni di montaggio ‘noatime’ e ‘nodiratime’, che esploreremo nelle sezioni successive, sono strumenti preziosi che possono aiutarci a raggiungere questo obiettivo.

Metadati di accesso e usura del disco

In un sistema Linux, ogni volta che un file viene letto, il sistema operativo aggiorna un attributo chiamato ‘atime’, o access time, che registra l’ultima volta che il file è stato accesso. Questa informazione può essere utile per alcune applicazioni, ma la maggior parte delle volte non viene utilizzata. Il problema è che ogni aggiornamento di ‘atime’ richiede un’operazione di scrittura sul disco. Considerando che molte operazioni su un sistema Linux comportano la lettura di file, l’aggiornamento costante di ‘atime’ può causare un notevole sovraccarico di scritture sul disco.

Analogamente, l’attributo ‘diratime’, o directory access time, registra l’ultima volta che una directory è stata letta. Anche in questo caso, la maggior parte delle applicazioni non ha bisogno di questa informazione, ma il sistema operativo continua ad aggiornarla ogni volta che una directory viene letta, causando ulteriori scritture sul disco.

Le opzioni di montaggio ‘noatime’ e ‘nodiratime’

Ecco dove entrano in gioco le opzioni di montaggio ‘noatime’ e ‘nodiratime’. Quando queste opzioni sono attivate, il sistema operativo smette di aggiornare gli attributi ‘atime’ e ‘diratime’, rispettivamente. Questo significa che ci saranno meno scritture sul disco, il che può aiutare a prolungare la durata di unità SSD e NVMe.

Inoltre, poiché le operazioni di scrittura richiedono generalmente più tempo e risorse rispetto alle operazioni di lettura, ridurre il numero di scritture può anche aiutare a migliorare le prestazioni del sistema. In particolare, può aumentare il throughput del disco (la quantità di dati che può essere letta o scritta in un dato periodo di tempo) e migliorare l’I/O del sistema.

Come applicare le opzioni di montaggio ‘noatime’ e ‘nodiratime’

Per applicare le opzioni di montaggio ‘noatime’ e ‘nodiratime’, è necessario modificare il file /etc/fstab del sistema. Questo file contiene informazioni su dove il sistema dovrebbe montare le varie parti del file system. Per ogni partizione che si desidera ottimizzare, è possibile aggiungere ‘noatime,nodiratime’ alla colonna delle opzioni di montaggio.

noatime nodiratime

Ad esempio, supponiamo di avere una partizione /dev/sda1 montata su /home. La riga corrispondente nel file /etc/fstab potrebbe apparire così:

/dev/sda1 /home ext4 defaults 0 2

Per applicare le opzioni ‘noatime’ e ‘nodiratime’, si modificherebbe questa riga in:

/dev/sda1 /home ext4 defaults,noatime,nodiratime 0 2

Dopo aver salvato e chiuso il file, è possibile applicare le modifiche con il comando ‘mount -o remount’.

Conclusione

Le unità SSD e NVMe sono strumenti potenti che possono fornire velocità e efficienza significative in un sistema Linux. Tuttavia, la loro durata può essere limitata dal numero di operazioni di lettura e scrittura che possono eseguire. Utilizzando le opzioni di montaggio ‘noatime’ e ‘nodiratime’, è possibile ridurre il numero di scritture sul disco, aiutando a prolungare la durata di queste unità e a migliorare le prestazioni del sistema.

È importante notare che, sebbene queste opzioni possano offrire molti vantaggi, possono anche avere alcuni svantaggi. Ad esempio, alcune applicazioni potrebbero aver bisogno delle informazioni ‘atime’ e ‘diratime’ e potrebbero non funzionare correttamente senza di esse. Pertanto, prima di applicare queste opzioni, è sempre una buona idea fare una ricerca e capire le possibili implicazioni per il vostro specifico sistema e carico di lavoro.

Hai dei dubbi? Non sai da dove iniziare? Contattaci !

Abbiamo tutte le risposte alle tue domande per aiutarti nella giusta scelta.

Chatta con noi

Chatta direttamente con il nostro supporto prevendita.

0256569681

Contattaci telefonicamente negli orari d’ufficio 9:30 – 19:30

Contattaci online

Apri una richiesta direttamente nell’area dei contatti.

INFORMAZIONI

Managed Server S.r.l. è un player italiano di riferimento nel fornire soluzioni avanzate di sistemistica GNU/Linux orientate all’alta performance. Con un modello di sottoscrizione dai costi contenuti e prevedibili, ci assicuriamo che i nostri clienti abbiano accesso a tecnologie avanzate nel campo dell’hosting, server dedicati e servizi cloud. Oltre a questo, offriamo consulenza sistemistica su sistemi Linux e manutenzione specializzata in DBMS, IT Security, Cloud e molto altro. Ci distinguiamo per l’expertise in hosting di primari CMS Open Source come WordPress, WooCommerce, Drupal, Prestashop, Joomla, OpenCart e Magento, affiancato da un servizio di supporto e consulenza di alto livello adatto per la Pubblica Amministrazione, PMI, ed aziende di qualsiasi dimensione.

Red Hat, Inc. detiene i diritti su Red Hat®, RHEL®, RedHat Linux®, e CentOS®; AlmaLinux™ è un marchio di AlmaLinux OS Foundation; Rocky Linux® è un marchio registrato di Rocky Linux Foundation; SUSE® è un marchio registrato di SUSE LLC; Canonical Ltd. detiene i diritti su Ubuntu®; Software in the Public Interest, Inc. detiene i diritti su Debian®; Linus Torvalds detiene i diritti su Linux®; FreeBSD® è un marchio registrato di The FreeBSD Foundation; NetBSD® è un marchio registrato di The NetBSD Foundation; OpenBSD® è un marchio registrato di Theo de Raadt. Oracle Corporation detiene i diritti su Oracle®, MySQL®, e MyRocks®; Percona® è un marchio registrato di Percona LLC; MariaDB® è un marchio registrato di MariaDB Corporation Ab; REDIS® è un marchio registrato di Redis Labs Ltd. F5 Networks, Inc. detiene i diritti su NGINX® e NGINX Plus®; Varnish® è un marchio registrato di Varnish Software AB. Adobe Inc. detiene i diritti su Magento®; PrestaShop® è un marchio registrato di PrestaShop SA; OpenCart® è un marchio registrato di OpenCart Limited. Automattic Inc. detiene i diritti su WordPress®, WooCommerce®, e JetPack®; Open Source Matters, Inc. detiene i diritti su Joomla®; Dries Buytaert detiene i diritti su Drupal®. Amazon Web Services, Inc. detiene i diritti su AWS®; Google LLC detiene i diritti su Google Cloud™ e Chrome™; Facebook, Inc. detiene i diritti su Facebook®; Microsoft Corporation detiene i diritti su Microsoft®, Azure®, e Internet Explorer®; Mozilla Foundation detiene i diritti su Firefox®. Apache® è un marchio registrato di The Apache Software Foundation; PHP® è un marchio registrato del PHP Group. CloudFlare® è un marchio registrato di Cloudflare, Inc.; NETSCOUT® è un marchio registrato di NETSCOUT Systems Inc.; ElasticSearch®, LogStash®, e Kibana® sono marchi registrati di Elastic N.V. Questo sito non è affiliato, sponsorizzato, o altrimenti associato a nessuna delle entità sopra menzionate e non rappresenta nessuna di queste entità in alcun modo. Tutti i diritti sui marchi e sui nomi di prodotto menzionati sono di proprietà dei rispettivi detentori di copyright. Ogni altro marchio citato appartiene ai propri registranti. MANAGED SERVER® è un marchio registrato a livello Europeo da MANAGED SERVER SRL Via Enzo Ferrari, 9 62012 Civitanova Marche (MC) Italia.

Torna in alto