Rumah Tutorial sistem LINUX Cara sistem fail Linux berfungsi: Semua dalam nod indeks dan entri direktori ialah fail

Cara sistem fail Linux berfungsi: Semua dalam nod indeks dan entri direktori ialah fail

Apr 03, 2024 am 09:16 AM
linux python perpustakaan standard

Cara sistem fail Linux berfungsi Nod indeks dan entri direktori

Semua dalam Linux ialah fail biasa, direktori, peranti blok, soket dan paip juga mesti diuruskan melalui sistem fail bersatu.

Linux memperuntukkan dua struktur data untuk setiap fail, nod indeks dan entri direktori, yang digunakan terutamanya untuk merekodkan meta-maklumat dan struktur direktori fail.

Nod indeks ialah satu-satunya pengecam bagi setiap fail Entri direktori mengekalkan struktur pepohon sistem fail Hubungan antara entri direktori dan nod indeks adalah banyak-dengan-satu boleh mempunyai beberapa nama.

Alias ​​yang dibuat untuk fail melalui pautan keras akan sepadan dengan entri direktori yang berbeza pada asasnya masih dipautkan ke fail yang sama, jadi nod indeksnya adalah sama.

Unit terkecil cakera c ialah trek (512B Walau bagaimanapun, setiap bacaan dan tulis adalah sangat kecil dan kecekapannya sangat rendah). Oleh itu, sistem fail menyusun trek berturut-turut ke dalam blok logik Setiap kali, blok logik digunakan sebagai unit terkecil untuk mengurus data Setiap kali, blok logik digunakan sebagai unit terkecil untuk mengurus data 4KB, yang terdiri daripada berterusan Terdiri daripada 8 trek.

Dua perkara yang perlu diberi perhatian:

linux 文件系统优化_优化文件系统的管理_优化文件系统NTFS的管理

Sistem Fail Maya

Entri direktori, nod indeks, blok logik dan blok super membentuk empat elemen utama sistem fail Linux. Bagi menyokong pelbagai sistem fail, Linux memperkenalkan lapisan konkrit antara proses pengguna dan sistem fail, iaitu sistem fail maya VFS.

VFS mentakrifkan satu set struktur data dan soket standard yang disokong oleh semua sistem fail.

Sistem fail I/O

Klasifikasi I/O: I/O buffer dan unbuffered, I/O langsung dan tidak langsung, I/O menyekat dan tidak menyekat, I/O segerak dan tak segerak.

优化文件系统NTFS的管理_优化文件系统的管理_linux 文件系统优化

Ruang tidak mencukupi, df memeriksa pemacu c dan mendapati terdapat banyak ruang yang tinggal

Walaupun bukan sahaja data fail tetapi juga nod indeks juga menduduki ruang pemacu c, gunakan arahan berikut:

df-i

Apabila anda mendapati inod tidak mencukupi dan ruang yang mencukupi pada pemacu c, ia mungkin disebabkan oleh terlalu banyak fail kecil. Masalah ini boleh diselesaikan dengan memadamkan fail kecil tersebut atau menyambungkannya ke pemacu c lain dengan nod indeks yang mencukupi.

Inti menggunakan mekanisme Slab untuk mengurus cache entri direktori dan nod indeks. /proc/meminfo hanya memberikan saiz keseluruhan Slab Untuk setiap cache Slab, anda juga perlu menyemak /proc/slabinfo.

优化文件系统的管理_优化文件系统NTFS的管理_linux 文件系统优化

Prinsip kerja I/O sistem storan:

I/O sistem storan biasanya merupakan pautan paling perlahan dalam keseluruhan sistem. Oleh itu, Linux menggunakan pelbagai mekanisme caching untuk mengoptimumkan kecekapan I/O. Contohnya, untuk mengoptimumkan prestasi akses fail, pelbagai mekanisme caching seperti cache halaman, cache nod indeks dan cache kemasukan direktori digunakan untuk mengurangkan panggilan terus ke peranti blok lapisan atas. Begitu juga, untuk mengoptimumkan kecekapan akses peranti sekat, penimbal digunakan untuk menyimpan data peranti menyekat cache.

c memacu penunjuk prestasi

Penggunaan hanya mengambil kira sama ada terdapat I/O, bukan saiz I/O. Dalam erti kata lain, apabila penggunaan adalah 100%, pemacu c masih boleh menerima permintaan I/O baharu

Anda tidak boleh membandingkan penunjuk tertentu secara berasingan, tetapi anda mesti menganalisisnya secara menyeluruh dengan menggabungkan nisbah baca-tulis, jenis I/O (rawak atau berterusan) dan saiz I/O secara rawak tulis-baca dalam pangkalan data, sejumlah besar; fail kecil, dsb. Dalam senario Linux yang lebih tertanam, IOPS boleh mencerminkan prestasi keseluruhan sistem dengan lebih baik dalam senario dengan bacaan dan penulisan yang lebih berurutan seperti multimedia, daya pemprosesan boleh mencerminkan prestasi keseluruhan sistem dengan lebih baik

优化文件系统的管理_优化文件系统NTFS的管理_linux 文件系统优化

Apabila menghadapi senario "pengelogan gila" ini, anda boleh menggunakan iostat, strace, lsof dan alatan lain untuk mencari proses pengelogan, mencari fail log yang sepadan, dan kemudian melaraskan tahap log melalui soket aplikasi untuk menyelesaikan masalah . Jika aplikasi tidak boleh melaraskan tahap log secara dinamik, anda juga mungkin perlu menukar konfigurasi aplikasi dan memulakan semula aplikasi untuk konfigurasi berkuat kuasa.

Mengapa strace mengesan proses ini tetapi tidak mengesan sebarang panggilan sistem tulis?

Memandangkan penulisan fail dilakukan oleh rangkaian kanak-kanak, semua proses penjejakan strace tidak melihat panggilan sistem tulis Anda boleh melihat maklumat rangkaian proses melalui pstree, dan kemudian menggunakan strace untuk menjejaki atau menjejaki semua rangkaian melalui strace-fppid

Anatomi Pertanyaan Lambat

atas dan iostat menganalisis penggunaan CPU dan pemacu c sistem, dan menemui dilema I/O pemacu c. Kemudian, kami menggunakan pidstat dan mendapati bahawa masalah itu disebabkan oleh mysqld. Kemudian, kami menggunakan strace dan lsofpengoptimuman sistem fail linux untuk mencari fail yang sedang dibaca oleh mysqld. Pada masa yang sama, mengikut nama dan laluan fail, kami mendapati pangkalan data dan jadual data yang mysqld sedang beroperasi. Berdasarkan maklumat ini, kami menentukan bahawa ini adalah masalah pertanyaan perlahan yang disebabkan oleh tidak menggunakan indeks.

优化文件系统的管理_优化文件系统NTFS的管理_linux 文件系统优化

Selepas menghentikan perkhidmatan data, masalah IO akan hilang.

Jadual data yang diakses oleh aplikasi kes adalah berdasarkan enjin MyISAM, dan ciri MyISAM ialah ia hanya menyimpan indeks dalam memori video dan tidak menyimpan data dalam cache. Oleh itu, apabila ayat pertanyaan tidak boleh menggunakan indeks, jadual data perlu dibaca daripada fail pangkalan data ke dalam memori video dan kemudian diproses.

perkhidmatan data akan sentiasa mengeluarkan cache fail, menyebabkan mysql tidak bergantung pada cache pemacu c.

Redis pertama kali menggunakan top dan iostat untuk menganalisis penggunaan CPU, memori dan pemacu c sistem, tetapi mendapati tiada dilema dalam sumber sistem. Untuk menganalisis lebih lanjut, anda perlu mempunyai pemahaman tertentu tentang cara sistem dan aplikasi berfungsi. Sebagai contoh, dalam kes esok, walaupun tiada dilema dalam cakera C I/O, menurut prinsip Redis, tidak sepatutnya terdapat sejumlah besar operasi tulis I/O cakera C semasa menanyakan cache. Sepanjang garis pemikiran ini, kami terus menggunakan satu siri alat seperti pidstat, strace, lsof, dan nsenter untuk mencari dua masalah yang berpotensi Satu ialah konfigurasi Redis yang tidak munasabah, dan satu lagi adalah penyalahgunaan aplikasi Redis oleh Python. Alat ujian penanda aras I/O

fio(flexibleI/OTester)

Pengoptimuman prestasi I/O

Pengoptimuman apl

Gantikan penulisan rawak dengan tambah tulis, kurangkan perbelanjaan pengundian dan tingkatkan kadar penulisan I/OGunakan pengoptimuman sistem fail Linux, gunakan sepenuhnya cache sistem untuk meningkatkan bilangan I/O sebenar. . Cipta Caching dalaman anda sendiri, atau menggunakan sistem caching luaran seperti Redis. Dengan cara ini, di satu pihak, data cache dan kitaran hayat boleh dikawal dalam aplikasi sebaliknya, ia juga boleh mengurangkan kesan aplikasi lain menggunakan cache pada diri mereka sendiri. Fungsi perpustakaan seperti fopen dan fread yang disediakan oleh perpustakaan standard C akan menggunakan cache perpustakaan standard untuk mengurangkan operasi pemacu C. Apabila anda terus menggunakan panggilan sistem seperti buka dan baca, anda hanya boleh menggunakan cache halaman dan penimbal yang disediakan oleh sistem pengendalian, dan tiada cache fungsi perpustakaan tersedia Jika anda perlu kerap membaca dan menulis ruang cakera C yang sama , anda boleh menggunakan mmap daripada membaca / menulis, mengurangkan bilangan salinan memori video Dalam senario di mana penulisan segerak diperlukan, cuba gabungkan permintaan tulis dan bukannya setiap permintaan ditulis ke pemacu c secara serentak. anda boleh menggunakan fsync() dan bukannya O_SYNC untuk berkongsi fail yang sama dalam berbilang aplikasi Apabila menggunakan pengurusan memori Linux pada pemacu c, untuk memastikan bahawa I/O tidak diduduki sepenuhnya oleh sesuatu aplikasi, adalah disyorkan agar anda menggunakan. subsistem I/O cgroup untuk mengehadkan IOPS dan throughput bagi proses/kumpulan proses Apabila menggunakan penjadual CFQ, anda boleh Gunakan ionice untuk melaraskan keutamaan penjadualan I/O proses, terutamanya untuk meningkatkan keutamaan I/O. daripada aplikasi teras. ionice menyokong tiga kelas keutamaan: Terbiar, Usaha Terbaik dan Masa Nyata. Antaranya, Best-effort dan Realtime juga menyokong tahap masing-masing dari 0 hingga 7 Semakin kecil nilai, semakin tinggi tahap keutamaan.

Atas ialah kandungan terperinci Cara sistem fail Linux berfungsi: Semua dalam nod indeks dan entri direktori ialah fail. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Konfigurasi komputer apa yang diperlukan untuk vscode Konfigurasi komputer apa yang diperlukan untuk vscode Apr 15, 2025 pm 09:48 PM

Keperluan Sistem Kod Vs: Sistem Operasi: Windows 10 dan ke atas, MACOS 10.12 dan ke atas, pemproses pengedaran Linux: minimum 1.6 GHz, disyorkan 2.0 GHz dan ke atas memori: minimum 512 MB, disyorkan 4 GB dan ke atas ruang penyimpanan: minimum 250 mb, disyorkan 1 GB dan di atas keperluan lain:

Adakah sambungan vscode berniat jahat? Adakah sambungan vscode berniat jahat? Apr 15, 2025 pm 07:57 PM

Sambungan kod VS menimbulkan risiko yang berniat jahat, seperti menyembunyikan kod jahat, mengeksploitasi kelemahan, dan melancap sebagai sambungan yang sah. Kaedah untuk mengenal pasti sambungan yang berniat jahat termasuk: memeriksa penerbit, membaca komen, memeriksa kod, dan memasang dengan berhati -hati. Langkah -langkah keselamatan juga termasuk: kesedaran keselamatan, tabiat yang baik, kemas kini tetap dan perisian antivirus.

Bahasa apa yang digunakan vscode Bahasa apa yang digunakan vscode Apr 15, 2025 pm 11:03 PM

Kod Visual Studio (VSCode) dibangunkan oleh Microsoft, dibina menggunakan rangka kerja elektron, dan terutamanya ditulis dalam JavaScript. Ia menyokong pelbagai bahasa pengaturcaraan, termasuk JavaScript, Python, C, Java, HTML, CSS, dan lain -lain, dan boleh menambah sokongan untuk bahasa lain melalui sambungan.

Boleh vscode digunakan pada mac Boleh vscode digunakan pada mac Apr 15, 2025 pm 07:45 PM

Kod VS berfungsi dengan baik pada macOS dan dapat meningkatkan kecekapan pembangunan. Langkah -langkah pemasangan dan konfigurasi termasuk: memasang kod VS dan mengkonfigurasi. Pasang sambungan khusus bahasa (seperti Eslint untuk JavaScript). Pasang sambungan dengan teliti untuk mengelakkan permulaan yang berlebihan melambatkan. Ketahui ciri asas seperti integrasi Git, terminal dan debugger. Tetapkan tema dan fon kod yang sesuai. Nota Isu Potensi: Keserasian Lanjutan, Kebenaran Fail, dan lain -lain.

Python vs JavaScript: Keluk Pembelajaran dan Kemudahan Penggunaan Python vs JavaScript: Keluk Pembelajaran dan Kemudahan Penggunaan Apr 16, 2025 am 12:12 AM

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Boleh vs kod berjalan python Boleh vs kod berjalan python Apr 15, 2025 pm 08:21 PM

Ya, kod vs boleh menjalankan kod python. Untuk menjalankan Python dengan cekap dalam kod VS, lengkapkan langkah -langkah berikut: Pasang penterjemah Python dan konfigurasikan pembolehubah persekitaran. Pasang pelanjutan python dalam kod vs. Jalankan kod Python dalam terminal Vs Code melalui baris arahan. Gunakan keupayaan debugging VS dan pemformatan kod untuk meningkatkan kecekapan pembangunan. Mengamalkan tabiat pengaturcaraan yang baik dan gunakan alat analisis prestasi untuk mengoptimumkan prestasi kod.

Kunci Pintasan Tugas VSCode Running Kunci Pintasan Tugas VSCode Running Apr 15, 2025 pm 09:39 PM

Jalankan tugas dalam vscode: Buat fail Tasks.json, tentukan versi dan senarai tugas; Konfigurasikan label, perintah, args, dan jenis tugas; simpan dan tambah nilai tugas; Jalankan tugas menggunakan kekunci pintasan CTRL Shift B (macOS untuk CMD Shift B).

Python: Automasi, skrip, dan pengurusan tugas Python: Automasi, skrip, dan pengurusan tugas Apr 16, 2025 am 12:14 AM

Python cemerlang dalam automasi, skrip, dan pengurusan tugas. 1) Automasi: Sandaran fail direalisasikan melalui perpustakaan standard seperti OS dan Shutil. 2) Penulisan Skrip: Gunakan Perpustakaan Psutil untuk memantau sumber sistem. 3) Pengurusan Tugas: Gunakan perpustakaan jadual untuk menjadualkan tugas. Kemudahan penggunaan Python dan sokongan perpustakaan yang kaya menjadikannya alat pilihan di kawasan ini.

See all articles