我的代碼在具有100GB內存的羣集節點上的CentOS 6.6上運行。但是,這似乎仍然不夠大,因爲我的代碼需要讀取1000個以上的hickle文件(每個200MB)。這完全是240GB。代碼運行時,系統內存高速緩存不斷增加,直到完成,並且在分配新對象和進行numpy數組計算時,代碼性能變得非常慢。在讀取大量文件或lmdb時禁用python文件緩存
我試圖做GC.Collect的和德爾,以防止任何內存泄露,但記憶還在不斷增加。我懷疑這是由於文件緩存。所以我想知道在python sys或os lib中是否有一個函數可以在讀取大量(每個200MB)大文件或者單個lmdb文件(240GB)時禁用python文件系統緩存。實際上,我並不需要一旦讀取就緩存這些文件。
你有沒有解決過這個問題?我對這個話題非常感興趣。 在我的情況下,我並行加載'.json'文件。 'gc.collect()'似乎表現出了改進,但在這個階段我不完全確定這一點。我只是想知道爲什麼如果加載的文件超出範圍內存沒有得到釋放。這可能會有幫助:http://stackoverflow.com/a/5071376/4773274 – holzkohlengrill