日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

dev layoutview 怎么显示大小_「转」磁盘满了,为啥du却显示还有很大空间?

發(fā)布時(shí)間:2023/12/19 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dev layoutview 怎么显示大小_「转」磁盘满了,为啥du却显示还有很大空间? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

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

du一下,查看磁盤空間:

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

畫外音:似乎還有空間。

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

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

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

du:disk usage

通過搜索文件來計(jì)算每個(gè)文件的大小然后累加得到的值。

df:disk free

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

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

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

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

對(duì)我們的啟示是,如果要?jiǎng)h除某個(gè)access日志,不要粗暴的rm,而要溫柔的:

echo "" > access.log

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

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

lsof:list open files

使用lsof查看打開的文件。

lsof | grep deleted

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

畫外音:請(qǐng)?jiān)谑謾C(jī)上把圖放大。

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

while(pid=fork())

手誤寫成了:

while(pid==fork())

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

畫外音:我去,多了一個(gè)等號(hào),這個(gè)bug好真實(shí)。

一分鐘不長(zhǎng),希望大家有收獲:

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

總結(jié)

以上是生活随笔為你收集整理的dev layoutview 怎么显示大小_「转」磁盘满了,为啥du却显示还有很大空间?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。