Mengapa ruang tidak dikeluarkan selepas memadam fail?
Pernahkah anda menghadapi situasi di mana fail telah dipadamkan tetapi ruang tersebut tidak dikeluarkan dalam persekitaran Linux? Artikel pendek ini akan memperkenalkan senario masalah ini dan penyelesaian yang sepadan.
Salah satu pelayan aplikasi kami, sistem pengendalian ialah Red Hat Linux, pemantauan penggera, /opt/applog penggunaan sistem fail melebihi ambang, kapasiti keseluruhan ialah 50G, tetapi kapasiti fail sebenar ialah 20G, apakah ruang 30G yang tinggal?
Kami tahu bahawa dalam persekitaran Linux, semuanya wujud dalam bentuk fail Sistem memperuntukkan deskriptor fail untuk setiap aplikasi di latar belakang, yang menyediakan deskriptor fail untuk interaksi antara aplikasi dan sistem pengendalian antara muka ialah fail, ia akan mengambil ruang Pada masa ini, anda boleh menggunakan perintah lsof, yang boleh menyenaraikan fail yang sedang dibuka oleh sistem.
>lsof COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ... filebeat 111442 app 1r REG 253,3 209715229 1040407 /opt/applog/E.20171016.info.012.log filebeat 111442 app 2r REG 253,3 209715254 385080 /opt/applog/E.20171015.info.001.log (deleted) ...
Maksud setiap medan dalam tajuk adalah seperti berikut:
PERINTAH: Nama proses
PID: pengecam proses
PENGGUNA: pemilik proses
FD: Deskriptor fail, aplikasi mengenal pasti fail melalui deskriptor fail. Seperti cwd, txt, dsb.
JENIS: jenis fail, seperti DIR, REG, dll.
PERANTI: Nyatakan nama cakera
SAIZ: Saiz fail
NODE: nod indeks (pengenalan fail pada cakera)
NAMA: Nama sebenar fail yang dibuka
Dapat dilihat bahawa dalam beberapa baris, NAMA ditanda (dipadamkan)
/opt/applog/E.20171015.info.001.log (dipadamkan)
Maksudnya ialah fail telah dipadamkan, tetapi pemegang fail yang terbuka belum ditutup Lihat nama COMMAND ialah filebeat, dan pemilik proses PENGGUNA Ini adalah proses pengumpulan log kami telah menghidupkan proses filebeat.
Pengenalan kepada platform pengumpulan log
Platform pembalakan sumber terbuka tradisional, ELK, terdiri daripada tiga alatan sumber terbuka: ElasticSearch, Logstash dan Kiabana, antaranya:
- Elasticsearch ialah enjin carian teragih sumber terbuka, diedarkan, konfigurasi sifar, penemuan automatik, serpihan indeks automatik, mekanisme penyalinan indeks, antara muka gaya tenang, pelbagai sumber data, beban carian automatik, dsb.
- Logstash ialah alat pengumpulan sumber terbuka yang boleh mengumpul, menapis log dan menyimpannya untuk kegunaan kemudian.
- Kibana ialah alat web grafik sumber terbuka yang menyediakan antara muka web mesra analisis log untuk Logstash dan ElasticSearch, dan boleh mengagregat, menganalisis dan mencari log data penting.
Rajah penggunaan biasa, seperti ditunjukkan di bawah
Apakah filebeat yang disebutkan di atas? Apa kaitan dengan ELK?
Terdapat pengenalan oleh pakar hebat Rao Chenlin (pengarang "ELKstack Authoritative Guide") tentang Zhihu, yang sangat bernas dan dipetik daripada https://www.zhihu.com/question/54058964/answer/137882919
Oleh kerana logstash dikendalikan oleh jvm dan menggunakan banyak sumber, penulis kemudiannya menggunakan golang untuk menulis logstash-forwarder yang ringan dengan fungsi yang lebih sedikit tetapi penggunaan sumber yang rendah. Walau bagaimanapun, pengarang hanyalah seorang Selepas menyertai Ringkasnya, filebeat ialah ejen proses untuk pengumpulan log, bertanggungjawab untuk mengumpul fail log aplikasi. Untuk masalah saya di atas, sebab mengapa terdapat sebilangan besar pemegang fail (dipadam) dan tidak dikeluarkan adalah kerana ruang cakera adalah sangat terhad, tugasan telah ditambah buat sementara waktu untuk memadam log 12 jam yang lalu setiap jam Dalam erti kata lain, tugas yang dijadualkan akan memadamkan beberapa fail secara automatik yang sedang dibuka oleh filebeat pada masa ini, jadi fail ini menjadi fail yang tidak dikeluarkan, jadi fail sebenar dipadamkan, tetapi ruang tidak dikeluarkan. Penyelesaian 1: Untuk melepaskan ruang yang diduduki dengan cepat, kaedah yang paling langsung ialah membunuh -9 proses filebeat, pada masa itu ruang akan dilepaskan. Tetapi ini bukan penyelesaian asas Tugas berjadual juga akan memadamkan fail ini yang dibuka oleh filebeat, menyebabkan ruang menjadi penuh. Penyelesaian 2: Iaitu, jika fail tidak dikemas kini dalam tempoh masa tertentu, pemegang fail yang dipantau akan ditutup. Iaitu, apabila nama fail berubah, termasuk menamakan semula dan memadam, fail akan ditutup secara automatik. Menggabungkan kedua-dua parameter ini, mengikut keperluan aplikasi, jika fail tidak dikemas kini dalam masa 30 minit, pemegangnya perlu ditutup Jika fail itu dinamakan semula atau dipadam, pemegangnya perlu ditutup dekat_lebih tua: 30m Ia boleh memenuhi keperluan asas pengumpulan log filebeat dan pemadaman tetap fail sejarah.
Fail konfigurasi Filebeat filebeat.yml sebenarnya mempunyai dua parameter:
Penerangan: Tutup lebih lama menutup pengendali fail yang tidak diubah suai lebih lama kemudian rentetan masa seperti 2j (2 jam), 5m (5 minit) boleh digunakan.
Nota: Pilihan ini menutup fail, sebaik sahaja nama fail berubah Pilihan konfigurasi ini hanya dicadangkan pada tetingkap Filebeat memastikan fail yang dibacanya terbuka dialih keluar sepenuhnya sehingga juga Filebeat menutup pembacaan fail selepas ignore_older Pada masa ini tiada fail baharu dengan nama yang sama boleh dibuat sebaliknya boleh berlaku selepas penggiliran fail permulaan fail baharu dilangkau, kerana bacaan bermula pada penghujung Kami mengesyorkan agar pilihan ini dibiarkan palsu tetapi menurunkan nilai ignore_older untuk mengeluarkan fail dengan lebih cepat.
force_close_files: benar
Atas ialah kandungan terperinci Mengapa ruang tidak dikeluarkan selepas memadam fail?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

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:

Sebab -sebab pemasangan sambungan kod VS mungkin: ketidakstabilan rangkaian, kebenaran yang tidak mencukupi, isu keserasian sistem, versi kod VS terlalu lama, perisian antivirus atau gangguan firewall. Dengan menyemak sambungan rangkaian, keizinan, fail log, mengemas kini kod VS, melumpuhkan perisian keselamatan, dan memulakan semula kod VS atau komputer, anda boleh menyelesaikan masalah dan menyelesaikan masalah secara beransur -ansur.

Walaupun Notepad tidak dapat menjalankan kod Java secara langsung, ia dapat dicapai dengan menggunakan alat lain: menggunakan pengkompil baris arahan (Javac) untuk menghasilkan fail bytecode (fileName.class). Gunakan Java Interpreter (Java) untuk mentafsir bytecode, laksanakan kod, dan output hasilnya.

VS Kod adalah nama penuh Visual Studio Code, yang merupakan editor kod dan persekitaran pembangunan yang dibangunkan oleh Microsoft. Ia menyokong pelbagai bahasa pengaturcaraan dan menyediakan penonjolan sintaks, penyiapan automatik kod, coretan kod dan arahan pintar untuk meningkatkan kecekapan pembangunan. Melalui ekosistem lanjutan yang kaya, pengguna boleh menambah sambungan kepada keperluan dan bahasa tertentu, seperti debuggers, alat pemformatan kod, dan integrasi Git. VS Kod juga termasuk debugger intuitif yang membantu dengan cepat mencari dan menyelesaikan pepijat dalam kod anda.

VS Kod boleh didapati di Mac. Ia mempunyai sambungan yang kuat, integrasi git, terminal dan debugger, dan juga menawarkan banyak pilihan persediaan. Walau bagaimanapun, untuk projek yang sangat besar atau pembangunan yang sangat profesional, kod VS mungkin mempunyai prestasi atau batasan fungsi.

Visual Studio Code (VSCode) adalah editor cross-platform, sumber terbuka dan editor kod percuma yang dibangunkan oleh Microsoft. Ia terkenal dengan ringan, skalabilitas dan sokongan untuk pelbagai bahasa pengaturcaraan. Untuk memasang VSCode, sila lawati laman web rasmi untuk memuat turun dan jalankan pemasang. Apabila menggunakan VSCode, anda boleh membuat projek baru, edit kod, kod debug, menavigasi projek, mengembangkan VSCode, dan menguruskan tetapan. VSCode tersedia untuk Windows, MacOS, dan Linux, menyokong pelbagai bahasa pengaturcaraan dan menyediakan pelbagai sambungan melalui pasaran. Kelebihannya termasuk ringan, berskala, sokongan bahasa yang luas, ciri dan versi yang kaya

Penggunaan utama Linux termasuk: 1. Sistem Operasi Pelayan, 2. Sistem Terbenam, 3. Linux cemerlang dalam bidang ini, menyediakan kestabilan, keselamatan dan alat pembangunan yang cekap.

Untuk melihat alamat repositori Git, lakukan langkah -langkah berikut: 1. Buka baris arahan dan navigasi ke direktori repositori; 2. Jalankan perintah "Git Remote -V"; 3. Lihat nama repositori dalam output dan alamat yang sepadan.
