91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux刪除了文件后空間沒有釋放原因及如何解決

發布時間:2022-02-18 10:37:32 來源:億速云 閱讀:155 作者:iii 欄目:開發技術

這篇文章主要介紹了Linux刪除了文件后空間沒有釋放原因及如何解決的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Linux刪除了文件后空間沒有釋放原因及如何解決文章都會有所收獲,下面我們一起來看看吧。

Linux刪除了文件后空間沒有釋放原因及如何解決

我們的一臺應用服務器,操作系統是 Red Hat Linux,監控報警,/opt/applog文件系統使用率超閾值,整體容量為50G,但發現實際文件容量20G,剩下的30G空間是什么?

我們知道,Linux 環境下,任何事物,都是以文件的形式存在,系統在后臺,為每個應用程序,分配了一個文件描述符,他為應用程序和操作系統之間的交互操作提供了通用的接口,既然是文件,就會占用空間,此時可以使用 lsof 指令,他可以列出,當前系統正在打開的文件。

?

>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:進程的名稱 PID:進程標識符 USER:進程所有者 FD:文件描述符,應用程序通過文件描述符識別該文件。如cwd、txt等 TYPE:文件類型,如DIR、REG等 DEVICE:指定磁盤的名稱 SIZE:文件的大小 NODE:索引節點(文件在磁盤上的標識) NAME:打開文件的確切名稱

可以看出,有一些行中,NAME標識了(deleted)

?

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

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

插播一下日志采集平臺

傳統的開源日志平臺,即 ELK,由 ElasticSearch、Logstash 和 Kiabana 三個開源工具組成,其中:

  • Elasticsearch 是個開源分布式搜索引擎,分布式,零配置,自動發現,索引自動分片,索引副本機制,restful 風格接口,多數據源,自動搜索負載等。
  • Logstash 是一個開源的采集工具,他可以對日志進行收集、過濾,并將其存儲供以后使用。
  • Kibana 是一個開源的圖形 Web 工具,可以為 Logstash 和 ElasticSearch 提供日志分析友好的 Web 界面,可以匯總、分析和搜索重要數據日志。

常見的部署圖,如下所示

Linux刪除了文件后空間沒有釋放原因及如何解決
為什么刪除了文件空間卻不釋放?為什么刪除了文件空間卻不釋放?

對于上面提到的 filebeat 又是什么?和 ELK 有什么聯系?

?

因為 logstash 是 jvm 跑的,資源消耗比較大,所以后來作者又用 golang 寫了一個功能較少但是資源消耗也小的輕量級的 logstash-forwarder。不過作者只是一個人,加入http://elastic.co公司以后,因為 es 公司本身還收購了另一個開源項目 packetbeat,而這個項目專門就是用 golang 的,有整個團隊,所以 es 公司干脆把 logstash-forwarder 的開發工作也合并到同一個 golang 團隊來搞,于是新的項目就叫 filebeat 了。

Linux刪除了文件后空間沒有釋放原因及如何解決
為什么刪除了文件空間卻不釋放?為什么刪除了文件空間卻不釋放?

簡單來講,filebeat 就是日志采集的進程 agent,負責采集應用日志文件。

對于我上面的這個問題,之所以有大量的(deleted),未釋放文件句柄,還有個背景,就是由于磁盤空間非常有限,臨時加了任務,每小時刪除12小時前的日志,換句話說,定時任務會自動刪除此時 filebeat 正在打開著的一些文件,于是這些文件,就變為了未釋放的文件,因此實際文件刪除了,但空間未被釋放。

解決方案1:

為了迅速釋放空間占用,最直接的方法,就是 kill -9 filebeat 進程,此時空間會釋放。但并不是從根本解決,定時任務還會刪除這些,filebeat 打開的文件,導致空間滿。

解決方案2: filebeat 的配置文件 filebeat.yml,其實有兩個參數:

  • close_older: 1h 說明: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.

即如果一個文件在某個時間段內沒有發生過更新,則關閉監控的文件handle,默認1小時。

  • force_close_files: false 說明: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.

即當文件名稱有變化時,包括改名和刪除,會自動關閉一個文件。

這兩個參數結合起來,根據應用需求,一個文件30分鐘內不更新,則需要關閉句柄,文件改名或刪除,需要關閉句柄

?

close_older: 30m force_close_files: true

可以滿足,filebeat 采集日志,以及定時刪除歷史文件,這兩個任務的基本要求。

關于“Linux刪除了文件后空間沒有釋放原因及如何解決”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Linux刪除了文件后空間沒有釋放原因及如何解決”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

正安县| 綦江县| 宣城市| 正阳县| 新建县| 伊通| 耒阳市| 金湖县| 舒兰市| 工布江达县| 应城市| 肃宁县| 修水县| 襄城县| 高陵县| 疏附县| 九台市| 龙岩市| 天峨县| 永善县| 大新县| 梅州市| 鱼台县| 神木县| 合江县| 竹溪县| 霍林郭勒市| 奉化市| 北票市| 民乐县| 佛山市| 广平县| 察隅县| 竹山县| 健康| 重庆市| 安徽省| 秦安县| 横峰县| 伊通| 新绛县|