簡體   English   中英

Linux內存映射文件(已刪除)

[英]Linux memory mapped files (deleted)

我對Linux中的mmap文件有疑問(具體請參見Ubuntu 14)。

我們在主機上運行DSE / DSE SOLR,我們看到一些文件隨機消失。 看起來當應用程序開始建立索引時,它會創建一堆mmap文件並在繼續建立索引時使用它們。 在/ proc / $ {dse_pid} / map_files中查看,我看到了一堆指向(已刪除)文件的符號鏈接。 在我們的日志中,我們看到類似

錯誤[http-8983-exec-5] 2017-04-20 02:08:41,901 SolrException.java(第136行)嘗試獲取目錄大小時出現IO錯誤:java.io.FileNotFoundException:_2zm29_Lucene41_0.pos

map_files的示例如下:

lr -------- 1 cassandra cassandra 64 Apr 21 16:49 7f82c1a22000-7f82c1a23000-> /cassandra/data/solr.data/clearcore_solr.validations_search/index/_2grig_BloomFilter_0.tim(已刪除)lr ----- --- 1 cassandra cassandra 64 Apr 21 16:49 7f82c1a23000-7f82c1a24000-> /cassandra/data/solr.data/clearcore_solr.validations_search/index/_2grig_BloomFilter_0.pos(已刪除)lr -------- 1 cassandra cassandra 64 Apr 21 16:49 7f82c1a24000-7f82c1a25000-> /cassandra/data/solr.data/clearcore_solr.validations_search/index/_2grig_BloomFilter_0.doc(已刪除)lr -------- 1 cassandra cassandra 64 Apr 21 16:49 7f82c1a25000-7f82c1a28000-> /cassandra/data/solr.data/clearcore_solr.validations_search/index/_2grig_Lucene41_0.pos(已刪除)lr -------- 1 cassandra cassandra 64 Apr 21 16:49 7f82c1a29000-7f82c1a2a000-> / cassandra / data / solr.data / clearcore_solr.validations_search / index / _2grig.nvd(已刪除)lr -------- 1 cassandra cassandra 64 Apr 21 16:49 7f82c1a2a000-7f82c1a2b000-> / cassandra / data / solr。數據/ clearcore_solr.val idations_search / index / _2grig_Lucene41_0.doc(已刪除)

我的問題是,是否有什么可能導致這些文件隨機消失? 似乎dse每隔幾天就會有一個或兩個文件記錄這種類型的錯誤,proc /中大約有90個(已刪除)鏈接。 操作系統是否可能會過早清除其中一些mmap文件,從而導致proc /中的符號鏈接斷開? 我不知所措地解釋了這種行為。

此外,對於一般的mmap文件,如果某個進程無法正確關閉與mmap文件的連接,操作系統是否會清理該文件並將其從文件系統中刪除? 或者,如果一個進程沒有徹底斷開它與文件的連接會發生什么?

Solr使用大量的Java堆以及大型的mmap文件。 如果達到消耗所有物理RAM的地步,您會發現速度顯着下降,但仍然不會失敗。

Solr的mmap文件是臨時文件。 您可以調查DSE為什么要保留指向Solr的mmap文件的符號鏈接。 但是,如果沒有功能性DSE問題,那么也許這一切都沒有關系。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM