自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

磁盤滿了,為啥du卻顯示還有很大空間?

開發(fā) 開發(fā)工具 前端
今天有個實習(xí)生問了我一個詭異的問題,“線下一臺磁盤大小32G的開發(fā)機(jī)(虛擬機(jī))打不出日志”,把追查過程和大家分享一下。

今天有個實習(xí)生問了我一個詭異的問題,“線下一臺磁盤大小32G的開發(fā)機(jī)(虛擬機(jī))打不出日志”,把追查過程和大家分享一下。

[[251960]]

畫外音:貴司開發(fā)機(jī)磁盤容量多大?

先du一下,查看磁盤空間:

  1. [shenjian@dev02 ~]# du -sch / 
  2. 16G     / 

畫外音:似乎還有空間。

再試了一下df,發(fā)現(xiàn)結(jié)果不一樣:

  1. [shenjian@dev02 ~]$ df -h 
  2. 文件系統(tǒng)        容量  已用 可用 已用%  掛載點 
  3. /dev/sda2      33G   33G   33G  100% / 
  4. /dev/sda1      965M   30M  886M   4% /boot 

畫外音:顯示32G都用完了。

du:disk usage

通過搜索文件來計算每個文件的大小然后累加得到的值。

df:disk free

通過文件系統(tǒng)來獲取空間大小的信息。

如果用戶刪除了一個正在運(yùn)行的應(yīng)用程序所打開的某個目錄下的文件:

  • du命令返回的值,顯示出減去了該文件后的總大小
  • df命令返回的值,則不顯示減去該文件后的大小(文件句柄還在被使用),直到該運(yùn)行的應(yīng)用程序關(guān)閉了這個打開的文件(才會真正釋放空間)

常見的場景是,刪除了一個很大的正在寫入的tomcat的access日志,du顯示的結(jié)果會把日志大小減去,而df則仍會包含該日志的大小(實際上tomcat仍引用了該文件的句柄)。

對我們的啟示是,如果要刪除某個access日志,不要粗暴的rm,而要溫柔的:

  1. echo "" > access.log 

畫外音:朋友們,有沒有rm過仍被引用的日志?

如何發(fā)現(xiàn)被應(yīng)用程序引用著“已刪除”文件呢?

lsof:list open files

使用lsof查看打開的文件。

lsof | grep deleted

結(jié)果顯示,一個我的logsvr程序(跑了幾個月了),和實習(xí)生寫的web-server程序(實習(xí)大作業(yè))呈現(xiàn)deleted狀態(tài),值得懷疑。

畫外音:請在手機(jī)上把圖放大。

最終定位出,是web-server程序中的一個:

  1. while(pid=fork()) 

手誤寫成了:

  1. while(pid==fork()) 

導(dǎo)致while內(nèi)一直fork進(jìn)程,直到將系統(tǒng)資源吃干。并且該進(jìn)程已經(jīng)成了zombie進(jìn)程,無法kill掉,重啟開發(fā)虛擬機(jī)后,問題得到解決。

畫外音:我去,多了一個等號,這個bug好真實。

一分鐘不長,希望大家有收獲:

  • du:disk usage
  • df:disk free
  • lsof:list open files
  • echo "" > access.log

【本文為51CTO專欄作者“58沈劍”原創(chuàng)稿件,轉(zhuǎn)載請聯(lián)系原作者】

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2021-08-06 20:22:27

Linuxdu命令

2022-10-17 15:04:40

量子計算

2022-04-29 09:25:39

硬盤inodeLinux

2020-12-03 06:18:04

磁盤Docker容器

2021-03-05 08:29:20

DeleteMysql數(shù)據(jù)結(jié)構(gòu)

2009-10-22 10:54:51

linux磁盤管理命令

2021-01-29 15:20:35

Linux運(yùn)維Linux系統(tǒng)

2021-10-30 19:01:17

磁盤字節(jié)文件

2022-03-07 10:54:34

內(nèi)存Linux

2017-09-06 08:43:18

RAID磁盤陣列

2011-01-18 10:25:19

Linux磁盤分區(qū)

2010-04-08 15:24:36

Windows磁盤空間

2020-10-12 17:40:44

lsofLinux虛擬文件

2024-10-28 11:07:33

磁盤目錄文件

2023-04-18 23:31:59

Linux磁盤系統(tǒng)

2010-05-27 17:51:55

Linux查看磁盤空間

2021-12-08 12:05:21

MySQ磁盤數(shù)據(jù)庫

2021-03-26 07:17:38

Linux命令磁盤

2021-03-25 12:50:31

Linux磁盤命令

2017-04-20 15:17:24

舊電腦硬件空間
點贊
收藏

51CTO技術(shù)棧公眾號