真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Linux刪除文件后空間為什么不釋放

這篇文章主要介紹“Linux刪除文件后空間為什么不釋放”,在日常操作中,相信很多人在Linux刪除文件后空間為什么不釋放問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Linux刪除文件后空間為什么不釋放”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

創(chuàng)新互聯(lián)公司2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元長(zhǎng)白做網(wǎng)站,已為上家服務(wù),為長(zhǎng)白各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

你是否碰見(jiàn)過(guò) Linux 環(huán)境下,文件已經(jīng)刪除,但是空間未被釋放的情況?這篇小文就會(huì)介紹一下,這種問(wèn)題的一個(gè)場(chǎng)景,以及相應(yīng)的解決方案。

我們的一臺(tái)應(yīng)用服務(wù)器,操作系統(tǒng)是 Red Hat  Linux,監(jiān)控報(bào)警,/opt/applog文件系統(tǒng)使用率超閾值,整體容量為50G,但發(fā)現(xiàn)實(shí)際文件容量20G,剩下的30G空間是什么?

我們知道,Linux  環(huán)境下,任何事物,都是以文件的形式存在,系統(tǒng)在后臺(tái),為每個(gè)應(yīng)用程序,分配了一個(gè)文件描述符,他為應(yīng)用程序和操作系統(tǒng)之間的交互操作提供了通用的接口,既然是文件,就會(huì)占用空間,此時(shí)可以使用  lsof 指令,他可以列出,當(dāng)前系統(tǒng)正在打開(kāi)的文件。

>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)

表頭各字段,含義如下:

  • COMMAND:進(jìn)程的名稱

  • PID:進(jìn)程標(biāo)識(shí)符

  • USER:進(jìn)程所有者

  • FD:文件描述符,應(yīng)用程序通過(guò)文件描述符識(shí)別該文件。如cwd、txt等

  • TYPE:文件類型,如DIR、REG等

  • DEVICE:指定磁盤的名稱

  • SIZE:文件的大小

  • NODE:索引節(jié)點(diǎn)(文件在磁盤上的標(biāo)識(shí))

  • NAME:打開(kāi)文件的確切名稱

可以看出,有一些行中,NAME標(biāo)識(shí)了(deleted)

/opt/applog/E.20171015.info.001.log (deleted)

他的含義,就是這文件已被刪除,但打開(kāi)文件的句柄,并未關(guān)閉,再看 COMMAND 的名稱是 filebeat,USER 進(jìn)程所有者是  app,這是我們的日志采集進(jìn)程,app 用戶開(kāi)啟了 filebeat 進(jìn)程。

插播一下日志采集平臺(tái)

傳統(tǒng)的開(kāi)源日志平臺(tái),即 ELK,由 ElasticSearch、Logstash 和 Kiabana 三個(gè)開(kāi)源工具組成,其中:

  • Elasticsearch 是個(gè)開(kāi)源分布式搜索引擎,分布式,零配置,自動(dòng)發(fā)現(xiàn),索引自動(dòng)分片,索引副本機(jī)制,restful  風(fēng)格接口,多數(shù)據(jù)源,自動(dòng)搜索負(fù)載等。

  • Logstash 是一個(gè)開(kāi)源的采集工具,他可以對(duì)日志進(jìn)行收集、過(guò)濾,并將其存儲(chǔ)供以后使用。

  • Kibana 是一個(gè)開(kāi)源的圖形 Web 工具,可以為 Logstash 和 ElasticSearch 提供日志分析友好的 Web  界面,可以匯總、分析和搜索重要數(shù)據(jù)日志。

常見(jiàn)的部署圖,如下所示

Linux刪除文件后空間為什么不釋放

對(duì)于上面提到的 filebeat 又是什么?和 ELK 有什么聯(lián)系?

因?yàn)?logstash 是 jvm 跑的,資源消耗比較大,所以后來(lái)作者又用 golang 寫了一個(gè)功能較少但是資源消耗也小的輕量級(jí)的  logstash-forwarder。不過(guò)作者只是一個(gè)人,加入http://elastic.co公司以后,因?yàn)?es 公司本身還收購(gòu)了另一個(gè)開(kāi)源項(xiàng)目  packetbeat,而這個(gè)項(xiàng)目專門就是用 golang 的,有整個(gè)團(tuán)隊(duì),所以 es 公司干脆把 logstash-forwarder 的開(kāi)發(fā)工作也合并到同一個(gè)  golang 團(tuán)隊(duì)來(lái)搞,于是新的項(xiàng)目就叫 filebeat 了。

Linux刪除文件后空間為什么不釋放

簡(jiǎn)單來(lái)講,filebeat 就是日志采集的進(jìn)程 agent,負(fù)責(zé)采集應(yīng)用日志文件。

對(duì)于我上面的這個(gè)問(wèn)題,之所以有大量的(deleted),未釋放文件句柄,還有個(gè)背景,就是由于磁盤空間非常有限,臨時(shí)加了任務(wù),每小時(shí)刪除12小時(shí)前的日志,換句話說(shuō),定時(shí)任務(wù)會(huì)自動(dòng)刪除此時(shí)  filebeat 正在打開(kāi)著的一些文件,于是這些文件,就變?yōu)榱宋瘁尫诺奈募?,因此?shí)際文件刪除了,但空間未被釋放。

解決方案1:

為了迅速釋放空間占用,最直接的方法,就是 kill -9 filebeat  進(jìn)程,此時(shí)空間會(huì)釋放。但并不是從根本解決,定時(shí)任務(wù)還會(huì)刪除這些,filebeat 打開(kāi)的文件,導(dǎo)致空間滿。

解決方案2:

filebeat 的配置文件 filebeat.yml,其實(shí)有兩個(gè)參數(shù):

close_older: 1h

說(shuō)明:Close older closes the file handler for which were not modified for longer  then close_older. Time strings like 2h (2 hours), 5m (5 minutes) can be  used.

即如果一個(gè)文件在某個(gè)時(shí)間段內(nèi)沒(méi)有發(fā)生過(guò)更新,則關(guān)閉監(jiān)控的文件handle,默認(rèn)1小時(shí)。

force_close_files: false

說(shuō)明:This option closes a file, as soon as the file name changes. This config  option is recommended on windows only. Filebeat keeps the files it’s reading  open. This can cause issues when the file is removed, as the file will not be  fully removed until also Filebeat closes the reading. Filebeat closes the file  handler after ignore_older. During this time no new file with the same name can  be created. Turning this feature on the other hand can lead to loss of data on  rotate files. It can happen that after file rotation the beginning of the new  file is skipped, as the reading starts at the end. We recommend to leave this  option on false but lower the ignore_older value to release files faster.

即當(dāng)文件名稱有變化時(shí),包括改名和刪除,會(huì)自動(dòng)關(guān)閉一個(gè)文件。

這兩個(gè)參數(shù)結(jié)合起來(lái),根據(jù)應(yīng)用需求,一個(gè)文件30分鐘內(nèi)不更新,則需要關(guān)閉句柄,文件改名或刪除,需要關(guān)閉句柄

close_older: 30m  force_close_files: true

可以滿足,filebeat 采集日志,以及定時(shí)刪除歷史文件,這兩個(gè)任務(wù)的基本要求。

到此,關(guān)于“Linux刪除文件后空間為什么不釋放”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!


本文名稱:Linux刪除文件后空間為什么不釋放
路徑分享:http://weahome.cn/article/podede.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部