Bagaimana dan mengapa opsi noatime meningkatkan kinerja sistem Linux

Pembaruan waktu mempengaruhi kinerja sistem. Apa yang terjadi di sana dan apa yang harus dilakukan - baca artikelnya.

Bagaimana dan mengapa opsi noatime meningkatkan kinerja sistem Linux
Setiap kali saya memperbarui Linux di komputer rumah saya, saya harus menyelesaikan masalah tertentu. Selama bertahun-tahun, hal ini telah menjadi kebiasaan: Saya membuat cadangan file, menghapus sistem, menginstal semuanya dari awal, memulihkan file, lalu menginstal ulang aplikasi favorit saya. Saya juga mengubah pengaturan sistem untuk diri saya sendiri. Terkadang dibutuhkan terlalu banyak waktu. Dan baru-baru ini saya bertanya-tanya apakah saya memerlukan sakit kepala ini.

sebuah waktu adalah salah satu dari tiga stempel waktu untuk file di Linux (lebih lanjut tentang ini nanti). Secara khusus, saya bertanya-tanya apakah sebaiknya menonaktifkan atime pada sistem Linux yang lebih baru. Karena atime diperbarui setiap kali file diakses, saya menyadari bahwa ini berdampak signifikan pada kinerja sistem.
Saya baru-baru ini meningkatkan ke Fedora 32 dan, karena kebiasaan, memulai dengan menonaktifkan waktu. Saya berpikir: apakah saya benar-benar membutuhkannya? Saya memutuskan untuk mempelajari masalah ini dan inilah yang saya gali.

Sedikit tentang stempel waktu file

Untuk mengetahuinya, Anda perlu mengambil langkah mundur dan mengingat beberapa hal tentang sistem file Linux dan bagaimana kernel memberi stempel waktu pada file dan direktori. Anda dapat melihat tanggal terakhir file dan direktori diubah dengan menjalankan perintah ls -l (panjang) atau cukup dengan melihat informasinya di pengelola file. Namun di balik layar, kernel Linux melacak beberapa stempel waktu untuk file dan direktori:

  1. Kapan file terakhir diubah (mtime)
  2. Kapan terakhir kali properti file dan metadata diubah (ctime)
  3. Kapan file terakhir diakses (atime)
  4. Anda dapat menggunakan perintah Statuntuk melihat informasi tentang file atau direktori. Ini filenya / etc / fstab dari salah satu server pengujian saya:

$ stat fstab
  File: fstab
  Size: 261             Blocks: 8          IO Block: 4096   regular file
Device: b303h/45827d    Inode: 2097285     Links: 1
Access: (0664/-rw-rw-r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:etc_t:s0
Access: 2019-04-25 21:10:18.083325111 -0500
Modify: 2019-05-16 10:46:47.427686706 -0500
Change: 2019-05-16 10:46:47.434686674 -0500
 Birth: 2019-04-25 21:03:11.840496275 -0500

Di sini Anda dapat melihat bahwa file ini dibuat pada tanggal 25 April 2019 ketika saya menginstal sistem. File saya / etc / fstab terakhir diubah pada 16 Mei 2019, dan semua atribut lainnya diubah pada waktu yang hampir bersamaan.

Jika saya menyalin / etc / fstab ke file baru, tanggalnya berubah untuk menunjukkan bahwa itu adalah file baru:

$ sudo cp fstab fstab.bak
$ stat fstab.bak
  File: fstab.bak
  Size: 261             Blocks: 8          IO Block: 4096   regular file
Device: b303h/45827d    Inode: 2105664     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:etc_t:s0
Access: 2020-05-12 17:53:58.442659986 -0500
Modify: 2020-05-12 17:53:58.443659981 -0500
Change: 2020-05-12 17:53:58.443659981 -0500
 Birth: 2020-05-12 17:53:58.442659986 -0500

Tetapi jika saya hanya mengganti nama file tanpa mengubah isinya, Linux hanya akan memperbarui saat file tersebut dimodifikasi:

$ sudo mv fstab.bak fstab.tmp
$ stat fstab.tmp
  File: fstab.tmp
  Size: 261             Blocks: 8          IO Block: 4096   regular file
Device: b303h/45827d    Inode: 2105664     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:etc_t:s0
Access: 2020-05-12 17:53:58.442659986 -0500
Modify: 2020-05-12 17:53:58.443659981 -0500
Change: 2020-05-12 17:54:24.576508232 -0500
 Birth: 2020-05-12 17:53:58.442659986 -0500

Stempel waktu ini sangat berguna untuk program Unix tertentu. Misalnya, biff adalah program yang memberi tahu Anda bila ada pesan baru di email Anda. Saat ini hanya sedikit orang yang menggunakannya pukulan, namun pada saat kotak surat bersifat lokal pada sistem, biff cukup umum.

Bagaimana program mengetahui jika Anda memiliki email baru di kotak masuk Anda? biff membandingkan waktu modifikasi terakhir (saat file kotak masuk diperbarui dengan pesan email baru) dan waktu akses terakhir (terakhir kali Anda membaca email). Jika perubahan terjadi setelah akses, maka biff akan memahami bahwa surat baru telah tiba dan akan memberi tahu Anda tentang hal itu. Klien email Mutt bekerja dengan cara yang hampir sama.

Stempel waktu akses terakhir juga berguna jika Anda perlu mengumpulkan statistik penggunaan sistem file dan menyesuaikan kinerja. Administrator sistem perlu mengetahui objek apa yang sedang diakses sehingga mereka dapat mengkonfigurasi sistem file yang sesuai.

Namun sebagian besar program modern tidak lagi memerlukan label ini, jadi ada usulan untuk tidak menggunakannya. Pada tahun 2007, Linus Torvalds dan beberapa pengembang kernel lainnya berdiskusi dalam konteks masalah kinerja. Pengembang kernel Linux Ingo Molnar membuat poin berikut tentang atime dan sistem file ext3:

"Cukup aneh bahwa setiap desktop dan server Linux mengalami penurunan kinerja I/O yang nyata karena pembaruan atime yang terus-menerus, meskipun hanya ada dua pengguna sebenarnya: tmpwatch [yang dapat dikonfigurasi untuk menggunakan ctime, jadi ini bukan masalah besar] dan beberapa alat cadangan."

Namun orang masih menggunakan beberapa program yang memerlukan label ini. Jadi menghapus atime akan merusak fungsinya. Pengembang kernel Linux tidak boleh melanggar kebebasan pengguna.

Solusi Salomo

Ada banyak sekali aplikasi yang disertakan dalam distribusi Linux dan selain itu pengguna dapat mendownload dan menginstal program lain sesuai dengan kebutuhannya. Ini adalah keuntungan utama dari OS open source. Namun hal ini mempersulit pengoptimalan kinerja sistem file Anda. Menghapus komponen yang membutuhkan banyak sumber daya dapat mengganggu sistem.

Sebagai kompromi, pengembang kernel Linux telah memperkenalkan opsi relaytime baru yang dimaksudkan untuk mencapai keseimbangan antara kinerja dan kompatibilitas:

atime diperbarui hanya jika waktu akses sebelumnya kurang dari waktu modifikasi atau perubahan status saat ini... Sejak Linux 2.6.30, kernel menggunakan opsi ini secara default (kecuali noatime ditentukan)... Juga, sejak Linux 2.6.30 . 1, waktu akses terakhir suatu file selalu diperbarui jika berumur lebih dari XNUMX hari.

Sistem Linux modern (sejak Linux 2.6.30, dirilis pada tahun 2009) sudah menggunakan waktu relai, yang seharusnya memberikan peningkatan kinerja yang sangat besar. Ini berarti Anda tidak perlu mengkonfigurasi file tersebut / etc / fstab, dan dengan waktu relai Anda dapat mengandalkan default.

Meningkatkan kinerja sistem dengan noatime

Namun jika Anda ingin menyempurnakan sistem Anda untuk mendapatkan kinerja maksimal, menonaktifkan atime masih dapat dilakukan.

Perubahan kinerja mungkin tidak terlalu terlihat pada drive modern yang sangat cepat (seperti NVME atau Fast SSD), namun ada sedikit peningkatan di sana.

Jika Anda tahu Anda tidak menggunakan perangkat lunak yang memerlukan atime, Anda dapat sedikit meningkatkan kinerja dengan mengaktifkan opsi noatime di file /etc/fstab. Setelah ini, kernel tidak akan terus memperbarui waktu. Gunakan opsi noatime saat memasang sistem file:

/dev/mapper/fedora_localhost--live-root /          ext4   defaults,noatime,x-systemd.device-timeout=0 1 1
UUID=be37c451-915e-4355-95c4-654729cf662a /boot    ext4   defaults,noatime        1 2
UUID=C594-12B1                          /boot/efi  vfat   umask=0077,shortname=winnt 0 2
/dev/mapper/fedora_localhost--live-home /home      ext4   defaults,noatime,x-systemd.device-timeout=0 1 2
/dev/mapper/fedora_localhost--live-swap none       swap   defaults,x-systemd.device-timeout=0 0 0

Perubahan akan berlaku saat Anda melakukan boot ulang lagi.

Tentang Hak Periklanan

Apakah Anda memerlukan server untuk meng-host situs web Anda? Perusahaan kami menawarkan server yang andal dengan pembayaran harian atau satu kali, setiap server terhubung ke saluran Internet 500 Megabit dan terlindungi dari serangan DDoS secara gratis!

Bagaimana dan mengapa opsi noatime meningkatkan kinerja sistem Linux

Sumber: www.habr.com

Tambah komentar