Kernel Linux

Memahami vm.kesombongan

Memahami vm.kesombongan
Kernel Linux adalah perisian yang agak kompleks dengan senarai komponen yang panjang seperti modul, antara muka dan fail konfigurasi [1]. Komponen ini dapat dikonfigurasi dengan nilai tertentu untuk mencapai tingkah laku atau modus operasi komponen yang diinginkan [2,3,4]. Selepas itu, persediaan ini secara langsung mempengaruhi tingkah laku dan prestasi sistem Linux anda secara keseluruhan.

Nilai semasa kernel Linux dan komponennya dapat diakses menggunakan antara muka khas - direktori / proc [5]. Ini adalah sistem fail maya di mana fail tunggal diisi dengan nilai dalam masa nyata. Nilai mewakili keadaan sebenar kernel Linux berada. Anda boleh mengakses fail individu di direktori / proc menggunakan perintah kucing seperti berikut:

$ cat / proc / sys / net / core / somaxconn
128
$

Salah satu parameter kernel ini disebut vm.kesombongan. Ini "mengendalikan bobot relatif yang diberikan untuk menukar memori runtime, berbanding dengan menjatuhkan halaman memori dari cache halaman sistem" [6]. Bermula dengan pelepasan kernel Linux 2.6 nilai ini diperkenalkan. Ia disimpan dalam fail / proc / sys / vm / swappiness .

Menggunakan Pertukaran

Penggunaan pertukaran [6] adalah bahagian penting dalam menggunakan mesin UNIX yang lebih kecil pada awal tahun 1990-an. Ia masih berguna (seperti mempunyai tayar ganti di dalam kenderaan anda) apabila kebocoran memori yang buruk mengganggu kerja anda. Mesin akan perlahan tetapi dalam kebanyakan kes masih dapat digunakan untuk menyelesaikan tugas yang diberikan. Pembangun perisian percuma telah membuat langkah besar untuk mengurangkan dan menghilangkan ralat program, jadi sebelum mengubah parameter kernel, pertimbangkan untuk mengemas kini ke versi aplikasi dan perpustakaan yang lebih baru terlebih dahulu.

Sekiranya anda menjalankan banyak tugas, maka tugas yang tidak aktif akan ditukar ke cakera, menggunakan memori yang lebih baik dengan tugas aktif anda. Penyuntingan video dan aplikasi lain yang banyak menggunakan memori sering mengesyorkan jumlah memori dan ruang cakera. Sekiranya anda mempunyai mesin lama yang tidak dapat menaik taraf memori, maka menyediakan lebih banyak pertukaran mungkin merupakan penyelesaian sementara yang baik untuk anda (lihat [6] tentang cara mengetahui lebih lanjut mengenai itu).

Pertukaran boleh berlaku pada partisi yang terpisah atau pada fail pertukaran. Partisi lebih pantas dan disukai oleh banyak aplikasi pangkalan data. Pendekatan fail lebih fleksibel (lihat pakej dphys-swapfile di Debian GNU / Linux [7]). Mempunyai lebih dari satu peranti fizikal untuk menukar membolehkan kernel Linux memilih peranti yang paling cepat tersedia (latensi rendah).

vm.kesombongan

Nilai lalai vm.swappiness adalah 60 dan mewakili peratusan memori bebas sebelum mengaktifkan pertukaran. Semakin rendah nilainya, semakin sedikit pertukaran digunakan dan semakin banyak halaman memori disimpan dalam memori fizikal.

Nilai 60 adalah kompromi yang berfungsi dengan baik untuk sistem desktop moden. Nilai yang lebih kecil adalah pilihan yang disarankan untuk sistem pelayan. Seperti yang ditunjukkan oleh manual Red Hat Performance Tuning [8], nilai swappiness yang lebih kecil disarankan untuk beban kerja pangkalan data. Sebagai contoh, untuk pangkalan data Oracle, Red Hat mencadangkan nilai swappiness 10. Sebaliknya, untuk pangkalan data MariaDB, disarankan untuk menetapkan swappiness pada nilai 1 [9].

Mengubah nilai secara langsung mempengaruhi prestasi sistem Linux. Nilai-nilai ini ditakrifkan:

* 0: pertukaran dilumpuhkan
* 1: jumlah pertukaran minimum tanpa mematikannya sepenuhnya
* 10: nilai yang disyorkan untuk meningkatkan prestasi apabila terdapat memori yang mencukupi dalam sistem
* 100: pertukaran agresif

Seperti yang ditunjukkan di atas, arahan kucing membantu membaca nilainya. Juga, arahan sysctl memberi anda hasil yang sama:

# sysctl vm.kesombongan
vm.swappiness = 60
#

Perlu diingat bahawa arahan sysctl hanya tersedia untuk pengguna pentadbiran. Untuk menetapkan nilai untuk sementara menetapkan nilai dalam sistem file / proc seperti berikut:

# echo 10> / proc / sys / vm / swappiness

Sebagai alternatif, anda boleh menggunakan arahan sysctl seperti berikut:

# sysctl -w vm.swappiness = 10

Untuk menetapkan nilai secara kekal, buka fail / etc / sysctl.conf sebagai pengguna pentadbiran dan tambahkan baris berikut:

vm.swappiness = 10

Kesimpulannya

Semakin banyak pengguna linux menjalankan mesin maya. Masing-masing mempunyai kernel sendiri selain hypervisor yang sebenarnya mengawal perkakasan. Mesin maya mempunyai cakera maya yang dibuat untuknya, jadi mengubah tetapan di dalam mesin maya akan memberikan hasil yang tidak tentu. Eksperimen terlebih dahulu dengan mengubah nilai kernel hypervisor, kerana ia sebenarnya mengawal perkakasan di mesin anda.

Untuk mesin lama yang tidak lagi dapat ditingkatkan (sudah mempunyai memori yang disokong maksimum) anda boleh mempertimbangkan untuk meletakkan cakera keadaan pepejal kecil di mesin untuk menggunakannya sebagai peranti pertukaran tambahan. Ini jelas akan menjadi habis kerana sel memori gagal dari banyak penulisan, tetapi dapat memanjangkan jangka hayat mesin selama satu tahun atau lebih dengan kos yang sangat rendah. Latensi yang lebih rendah dan bacaan cepat akan memberikan prestasi yang jauh lebih baik daripada menukar ke cakera biasa, memberikan hasil pertengahan ke RAM. Ini membolehkan anda menggunakan vm yang agak rendah.nilai swappiness untuk prestasi optimum. Anda mesti bereksperimen. Peranti SSD berubah dengan pantas.

Sekiranya anda mempunyai lebih dari satu alat pertukaran, pertimbangkan untuk menjadikannya sebagai peranti RAID untuk melucutkan data di seluruh peranti yang tersedia.

Anda boleh membuat perubahan dalam kesukaran tanpa menghidupkan semula mesin, kelebihan utama berbanding sistem operasi lain.

Cuba sertakan hanya perkhidmatan yang anda perlukan untuk perniagaan anda. Ini akan mengurangkan keperluan memori, meningkatkan prestasi dan menjadikan semuanya lebih mudah.

Catatan terakhir: Anda akan menambah beban ke peranti pertukaran anda. Anda akan mahu memantau suhu mereka. Sistem yang terlalu panas akan menurunkan frekuensi CPU dan melambatkan.

Ucapan terima kasih

Penulis ingin mengucapkan terima kasih khas kepada Gerold Rupprecht dan Zoleka Hatitongwe atas komen dan komen kritikal mereka semasa menyiapkan artikel ini.

Pautan dan Rujukan

* [1] Tutorial Kernel Linux untuk Pemula, https: // linuxhint.com / linux-kernel-tutorial-pemula /

* [2] Derek Molloy: Menulis Modul Kernel Linux - Bahagian 1: Pengenalan, http: // derekmolloy.iaitu / menulis-a-linux-kernel-modul-bahagian-1-pengenalan /

* [3] Derek Molloy: Menulis Modul Kernel Linux - Bahagian 2: Peranti Karakter, http: // derekmolloy.iaitu / menulis-a-linux-kernel-modul-bahagian-2-a-watak-peranti /

* [4] Derek Molloy: Menulis Modul Kernel Linux - Bahagian 3: Butang dan LED, http: // derekmolloy.iaitu / kernel-gpio-pengaturcaraan-butang-dan-leds /

* [5] Frank Hofmann: Perintah untuk Menguruskan Memori Linux, https: // linuxhint.com / perintah-untuk-mengurus-linux-memori /

* [6] Frank Hofmann: Pengurusan Memori Kernel Linux: Swap Space, https: // linuxhint.com / linux-memori-pengurusan-pertukaran-ruang /

* [7] pakej dphys-swapfile untuk pakej Debian GNU / Linux, https: //.debian.org / regangan / dphys-swapfile

* [8] Panduan Penalaan Prestasi Topi Merah, akses https: //.topi merah.com / dokumentasi / en-us / red_hat_enterprise_linux / 6 / html / performance_tuning_guide / s-memory-tunables

* [9] Mengkonfigurasi MariaDB, https: // mariadb.com / kb / en / perpustakaan / konfigurasi-swappiness /

SuperTuxKart untuk Linux
SuperTuxKart adalah tajuk hebat yang direka untuk membawa anda pengalaman Mario Kart secara percuma pada sistem Linux anda. Ia cukup mencabar dan meny...
Tutorial Battle for Wesnoth
The Battle for Wesnoth adalah salah satu permainan strategi sumber terbuka paling popular yang boleh anda mainkan pada masa ini. Bukan hanya permainan...
0 A.D. Tutorial
Daripada banyak permainan strategi di luar sana, 0 A.D. berjaya menonjol sebagai tajuk yang komprehensif dan permainan taktikal yang sangat mendalam w...