在服务器运维过程中,我们时常会遇到这样的情况,收到服务器磁盘空间告警:<br>
Log masuk ke pelayan dan lihat melalui df -Hl
Ia konsisten dengan maklumat penggera Kemudian kita perlu mencari direktori atau fail yang menyebabkan ruang cakera menjadi penuh.
Kaedah yang agak bodoh ialah menggunakan perintah du -hs dalam direktori akar untuk menyenaraikan ruang yang diduduki oleh setiap direktori
Kemudian gunakan kaedah yang sama untuk meneruskan carian dalam direktori yang sepadan
Kaedah yang agak cekap ialah menetapkan kedalaman direktori pertanyaan melalui parameter -d du, atau -max-depth Apabila kedalaman direktori bertambah, banyak direktori yang ditanya akan dipaparkan pada masa ini boleh menapis melalui grep.
du -h -d 2|grep [GT] |sort -nr du -h --max-depth=2|grep [GT] |sort -nr
Dengan cara ini, anda boleh mencari direktori besar yang menduduki ruang cakera dalam unit G atau T dan mengisihnya
Atau anda boleh bertanya melalui find
find / -type f -size +1G -exec du -h {} \;
Dari segi kecekapan, find adalah lebih pantas dan lebih fleksibel daripada du.
Dengan kedua-dua kaedah ini, kita boleh mencari pelakunya dengan cepat mengambil ruang cakera.
Anda fikir ia semudah itu? Banyak kali, anda akan mendapati bahawa selepas mencari untuk masa yang lama melalui find atau du, anda akan mendapati bahawa jumlah ruang yang diduduki adalah sangat berbeza daripada ruang cakera yang diduduki oleh df, seperti dua gambar di atas.
Dilihat melalui df, penggunaan cakera ialah 37G, tetapi dilihat melalui du -hs dalam direktori akar, jumlahnya bertambah sehingga hampir 10G, tiada direktori tersembunyi, siapa yang makan ruang itu?
Jelas sekali, terdapat ruang yang diduduki oleh fail yang dipadamkan. Fail dipadamkan, tetapi sumbernya tidak dikeluarkan.
Saya memperkenalkan arahan yang sangat berguna sebelum ini: lsof, kita boleh menyemaknya dengan arahan berikut
lsof +L1
Dapat dilihat daripada keputusan terdapat fail log yang besar kira-kira 28G Ia telah dipadam, tetapi ruang itu tidak dikeluarkan Ini adalah keadaan yang sangat biasa.
Penyelesaian yang sepadan adalah untuk memulakan semula aplikasi tomcat untuk mengosongkan ruang
Ada satu lagi soalan yang sering orang tanya, iaitu cakera yang dilihat melalui df
Anda akan mendapati bahawa jumlah Terpakai dan Tersedia tidak mencukupi untuk Saiz, dan sebahagian daripadanya dimakan tanpa sebab
Malah, ini adalah dasar keselamatan sistem fail Linux Secara lalai, ia akan menempah 5% daripada ruang cakera untuk pengguna root untuk kegunaan kecemasan. Ini boleh memastikan beberapa aplikasi utama (seperti pangkalan data) mempunyai sedikit kelonggaran apabila cakera keras penuh, supaya ia tidak akan ranap serta-merta
Kami boleh mengubah suai bahagian ruang yang dikhaskan melalui tune2fs
tune2fs -m 1 /dev/vda1
Boleh lihat perbandingan sebelum dan selepas dalam gambar di bawah
Ruang yang dimakan dengan cara ini dilepaskan!
Atas ialah kandungan terperinci Ruang cakera Linux penuh dengan luar biasa, bagaimana untuk menyemak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!