Rumah  >  Artikel  >  Tutorial sistem  >  [Pengoptimuman Sistem Linux] Bebaskan ruang memori anda—panduan pengoptimuman pertukaran dan penimbal

[Pengoptimuman Sistem Linux] Bebaskan ruang memori anda—panduan pengoptimuman pertukaran dan penimbal

WBOY
WBOYke hadapan
2024-02-13 12:24:141047semak imbas

Pernahkah anda menemui sistem Linux yang berjalan perlahan atau mempunyai memori yang tidak mencukupi? Ini mungkin kerana pertukaran dan penimbal dalam sistem tidak dikonfigurasikan dengan baik. Artikel ini akan memberi anda pemahaman yang mendalam tentang swap dan penimbal, dan cara mengoptimumkannya untuk membawa prestasi sistem anda ke peringkat seterusnya.

[Pengoptimuman Sistem Linux] Bebaskan ruang memori anda—panduan pengoptimuman pertukaran dan penimbal

Apakah mekanisme memori Linux?

Kami tahu bahawa membaca dan menulis data terus dari memori fizikal adalah lebih pantas daripada membaca dan menulis data daripada cakera keras Oleh itu, kami berharap semua bacaan dan penulisan data selesai dalam ingatan, dan ingatan adalah terhad, yang membawa kepada Konsep ingatan fizikal dan ingatan maya.

Memori fizikal ialah saiz memori yang disediakan oleh perkakasan sistem. Berbanding dengan memori fizikal, terdapat konsep memori maya di bawah Linux adalah strategi yang dicadangkan untuk memenuhi kekurangan memori fizikal Sekeping memori logik yang dimayakan oleh ruang Ruang cakera yang digunakan sebagai memori maya dipanggil Swap Space.

Sebagai lanjutan memori fizikal, Linux akan menggunakan memori maya partition swap apabila memori fizikal tidak mencukupi Secara lebih khusus, kernel akan menulis maklumat blok memori yang tidak digunakan buat sementara waktu ke ruang swap dilepaskan, memori ini boleh digunakan untuk tujuan lain Apabila kandungan asal diperlukan, maklumat akan dibaca semula dari ruang swap ke dalam memori fizikal.

Pengurusan memori Linux menggunakan mekanisme capaian paging Untuk memastikan memori fizikal boleh digunakan sepenuhnya, kernel secara automatik akan menukar blok data yang jarang digunakan dalam memori fizikal kepada memori maya pada masa yang sesuai, manakala blok data yang kerap digunakan akan ditukar secara automatik. ke dalam ingatan maya pada masa yang sesuai Maklumat tersebut disimpan ke dalam ingatan fizikal.

Untuk memahami secara mendalam mekanisme pengendalian memori Linux, anda perlu mengetahui aspek berikut:

Sistem Linux akan melakukan operasi swap halaman dari semasa ke semasa untuk mengekalkan sebanyak mungkin memori fizikal percuma Walaupun tiada apa-apa yang memerlukan memori, Linux akan menukar halaman memori yang tidak digunakan buat sementara waktu. Ini mengelakkan masa yang diperlukan untuk menunggu pertukaran.

Pertukaran halaman dalam Linux adalah bersyarat Tidak semua halaman ditukar kepada memori maya apabila tidak digunakan Kernel Linux hanya menukar beberapa fail halaman yang jarang digunakan berdasarkan algoritma "yang paling baru digunakan". fenomena: Linux masih mempunyai banyak memori fizikal, tetapi banyak ruang swap juga digunakan. Sebenarnya, ini tidak menghairankan Sebagai contoh, apabila proses yang menduduki banyak memori perlu menggunakan banyak sumber memori semasa berjalan, beberapa fail halaman yang tidak biasa akan ditukar kepada memori maya, tetapi kemudiannya proses ini yang menduduki banyak. sumber memori akan ditukar Apabila proses tamat dan banyak memori dikeluarkan, fail halaman yang baru ditukar tidak akan ditukar secara automatik ke dalam memori fizikal Melainkan ini perlu, memori fizikal sistem akan menjadi lebih bebas pada masa ini, dan ruang swap juga sedang digunakan Fenomena yang baru disebut berlaku. Tiada apa yang perlu dirisaukan pada ketika ini, cuma tahu apa yang berlaku.

Halaman dalam ruang swap mula-mula akan ditukar kepada memori fizikal apabila digunakan Jika tidak ada memori fizikal yang mencukupi untuk memuatkan halaman ini pada masa ini, ia akan ditukar keluar serta-merta memori maya untuk menyimpan halaman ini, bertukar-tukar halaman akhirnya akan menyebabkan masalah seperti ranap palsu dan keabnormalan perkhidmatan dalam Linux Walaupun Linux boleh pulih dengan sendirinya dalam tempoh masa, sistem yang dipulihkan pada dasarnya tidak boleh digunakan.

Oleh itu, adalah sangat penting untuk merancang dan mereka bentuk penggunaan memori Linux dengan betul.

Dalam sistem pengendalian Linux, apabila aplikasi perlu membaca data daripada fail, sistem pengendalian mula-mula memperuntukkan beberapa memori, membaca data daripada cakera ke dalam ingatan ini, dan kemudian mengedarkan data kepada aplikasi apabila perlu membaca data daripada fail Apabila menulis data, sistem pengendalian mula-mula memperuntukkan memori untuk menerima data pengguna, dan kemudian menulis data dari memori ke cakera. Walau bagaimanapun, jika terdapat sejumlah besar data yang perlu dibaca dari cakera ke memori atau ditulis dari memori ke cakera, prestasi baca dan tulis sistem menjadi sangat rendah, kerana sama ada ia membaca data daripada cakera atau menulis data ke cakera, ia adalah proses yang sangat panjang yang memakan masa dan sumber Dalam kes ini, Linux memperkenalkan penimbal dan mekanisme cache.

Buffer dan cache adalah kedua-dua operasi memori, digunakan untuk menyimpan fail dan maklumat atribut fail yang telah dibuka oleh sistem Dengan cara ini, apabila sistem pengendalian perlu membaca fail tertentu, ia akan terlebih dahulu mencari dalam buffer dan kawasan memori cache . Jika ditemui, ia akan dibaca secara langsung Jika data yang diperlukan tidak dijumpai, ia akan dibaca dari cakera Ini adalah mekanisme caching sistem pengendalian. Tetapi kandungan penimbal dan penimbal cache adalah berbeza.

Penimbal digunakan untuk menimpan peranti menyekat Ia hanya merekodkan metadata sistem fail dan menjejak halaman dalam penerbangan, manakala cache digunakan untuk menimpan fail. Untuk meletakkannya dengan lebih mudah: penimbal digunakan terutamanya untuk menyimpan kandungan direktori, atribut fail dan kebenaran, dsb. Cache digunakan secara langsung untuk mengingati fail dan program yang telah kami buka.

Untuk mengesahkan sama ada kesimpulan kami betul, anda boleh membuka fail yang sangat besar melalui vi untuk melihat perubahan dalam cache, dan kemudian vi fail sekali lagi untuk merasakan persamaan dan perbezaan dalam kelajuan dua bukaan, dan sama ada ia adakah kelajuan pembukaan kedua lebih cepat daripada kali pertama? Kemudian laksanakan arahan berikut:

find / -name .conf untuk melihat sama ada nilai penimbal berubah, dan kemudian laksanakan arahan find berulang kali untuk melihat perbezaan kelajuan paparan antara dua masa.

Bilakah Linux mula menggunakan memori maya (swap)?

[root@wenwen ~]# cat /proc/sys/vm/swappiness  
60

60 di atas bermakna swap akan digunakan apabila 40% daripada memori fizikal digunakan (rujuk maklumat rangkaian: apabila baki memori fizikal kurang daripada 40% (40=100-60), ruang swap akan mula menjadi digunakan) apabila swappiness=0 Gunakan memori fizikal pada tahap maksimum, dan kemudian tukar ruang Apabila swappiness=100, ia bermakna menggunakan partition swap secara aktif dan memindahkan data pada memori ke ruang swap dengan tepat pada masanya.

Semakin besar nilai, semakin besar kemungkinan untuk menggunakan swap. Ia boleh ditetapkan kepada 0, yang tidak melarang penggunaan swap, tetapi hanya meminimumkan kemungkinan menggunakan swap.

Biasanya: tetapan partition swap disyorkan untuk menjadi dua kali ganda memori (apabila memori kurang daripada atau sama dengan 4G Jika memori lebih besar daripada 4G, swap hanya perlu lebih besar daripada memori). Di samping itu, cuba untuk menurunkan swappiness sebanyak mungkin, supaya prestasi sistem akan menjadi lebih baik.

B. Ubah suai parameter swappiness

#临时性修改:  
[root@wenwen ~]# sysctl vm.swappiness=10  
vm.swappiness = 10  
[root@wenwen ~]# cat /proc/sys/vm/swappiness  
10  
#永久性修改:  
[root@wenwen ~]# vim /etc/sysctl.conf  
加入参数:  
vm.swappiness = 35 
然后在直接:  
[root@wenwen ~]# sysctl -p /etc/sysctl.conf  
#查看是否生效:  
cat /proc/sys/vm/swappiness  
35 

Ia berkuat kuasa serta merta dan juga boleh berkuat kuasa selepas dimulakan semula.

Bagaimana untuk melepaskan ingatan?

Sistem am tidak mengeluarkan fail konfigurasi utama /proc/sys/vm/drop_caches memori secara automatik. Fail ini merekodkan parameter keluaran cache Nilai lalai ialah 0, yang bermaksud cache tidak dikeluarkan. Nilainya boleh menjadi sebarang nombor antara 0 dan 3, mewakili makna yang berbeza:

  • 0 – Tiada keluaran
  • 1 – Kosongkan cache halaman
  • 2 – Lepaskan gigi dan inod
  • 3 – Lepaskan semua cache

Pembedahan praktikal:

[Pengoptimuman Sistem Linux] Bebaskan ruang memori anda—panduan pengoptimuman pertukaran dan penimbal

Jelas ada banyak memori percuma

Bagaimana untuk melepaskan swap?

Premise: Pertama, pastikan baki memori lebih besar daripada atau sama dengan penggunaan swap, jika tidak, ia akan ranap! Mengikut mekanisme memori, sebaik sahaja partition swap dikeluarkan, semua fail yang disimpan dalam partition swap akan dipindahkan ke memori fizikal. Melepaskan swap biasanya dicapai dengan memasang semula partition swap.

a. Periksa di mana partition swap semasa dipasang? b. Matikan partition ini c. Periksa sama ada partition swap dimatikan. e

[Pengoptimuman Sistem Linux] Bebaskan ruang memori anda—panduan pengoptimuman pertukaran dan penimbalMelalui pengenalan artikel ini, anda telah pun memahami konsep asas dan penggunaan swap dan buffer dalam sistem Linux dan cara menyemak penggunaannya. Pada masa yang sama, kami telah berkongsi beberapa cadangan pengoptimuman praktikal untuk membantu anda meningkatkan lagi prestasi sistem dan penggunaan memori. Harap artikel ini membantu anda!

Atas ialah kandungan terperinci [Pengoptimuman Sistem Linux] Bebaskan ruang memori anda—panduan pengoptimuman pertukaran dan penimbal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:lxlinux.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam