記錄一下docker踩坑 /dev/shm目錄

xxxxxxxxxxjh發表於2024-05-06

/dev/shm 是Linux系統中的一個特殊目錄,用於作為臨時檔案儲存的一種形式,它將資料儲存在RAM(隨機存取儲存器)中,而不是在磁碟上。這意味著在/dev/shm中儲存的資料訪問速度非常快,但資料在系統重啟後不會被保留。/dev/shm是POSIX共享記憶體(POSIX Shared Memory)的一部分,它允許不同的程序(程式)建立和訪問共享的記憶體空間,這對於需要高速資料交換的應用程式非常有用。

在技術上講,/dev/shm是一個臨時檔案系統(通常是tmpfs檔案系統),它可以被掛載和使用,就像磁碟上的檔案系統一樣,但實際上它完全位於記憶體中。因此,它非常適合需要臨時儲存大量資料的應用場景,比如資料庫、科學計算應用程式或任何需要快速檔案I/O操作的程式。

使用/dev/shm的優點包括:

  1. 高速訪問:由於資料儲存在RAM中,因此訪問速度遠遠超過硬碟驅動器(HDD)或固態驅動器(SSD)。
  2. 減少磁碟I/O:對於頻繁讀寫的臨時資料,使用記憶體可以減少磁碟I/O操作,從而提高系統效能和響應速度。
  3. 易於使用:使用/dev/shm就像使用任何其他檔案系統一樣簡單,不需要特殊的API呼叫,這使得它對於各種應用程式都很容易使用。

需要注意的是,因為/dev/shm使用的是寶貴的系統RAM資源,所以在使用時要注意不要消耗過多的記憶體,避免影響到系統的其他部分。另外,由於儲存在/dev/shm中的資料在重啟後不會被保留,因此它只適用於那些不需要永久儲存的資料。

/dev/shm提供了一種快速且高效的方式來處理臨時資料,特別是對於效能敏感的應用程式來說,它是一個非常有用的資源。

df -h 可以檢視目錄分配大小。

dockers踩坑:
容器啟動時可以透過引數設定 /dev/shm目錄大小 --shm-size 1g

參考:https://www.jianshu.com/p/0dc2dae0fa46

相關文章