No space left on device 看到這個錯誤,第一個反應是磁碟空間滿了;但df一看,每個分割槽的空間都還富餘的很。從munin 的監控圖表上看 Filesystem usage 也很平穩,但下面的 Inode usage 就有問題了,其中一個分割槽的 usage 已經到了100%。趕緊跑到伺服器上df -i檢查,果然是 Inode 耗盡。原來這個分割槽是用來扔各種日誌和臨時檔案的,其中有某個程式產生的臨時檔案又小又多,又沒有進行定時回滾,造成在磁碟空間耗盡之前檔案系統的 Inode 就被用光了。 Linux/Unix like OS 的檔案系統中每個目錄樹中的節點並不是像 Windows 那樣直接包含檔案的具體資訊,而只包含了檔名和 Inode number 。通過 Inode number 所找到對應於檔名的 Inode 節點中才真正記錄了檔案的大小/實體地址/所有者/訪問許可權/時間戳/被硬連結的次數等實際的metadata。因此你可以在 Linux 系統中通過硬連結( hard link ) 的方式給某個檔案建立無數個位於不同目錄下的檔名,而實際的檔案資料只需要一份拷貝。 但也正因為這種檔案系統的結構,當你在 Linux 中進行 IO 操作的時候,需要的資源除了磁碟空間以外,還要有剩餘的 Inode 才行。預設情況下, Linux 在系統安裝過程中按照1個 Inode 對應 2k 磁碟空間來計算每個分割槽的最大 Inode 數。一旦檔案系統建立之後,每個分割槽可用 Inode 數就無法進行動態調整。 正常來說,一般不太會出現某個分割槽的 Inode 耗盡而磁碟空間尚餘的情況,除非像我碰到的這樣垃圾小檔案瘋長而又沒進行有效的清理。但如果確實需要的話,可以在建立檔案系統(比如用mke2fs)的時候根據實際需要來調整這個引數(比如分割槽如果用於存放超大視訊檔案的話 Inode 的數量可以少一些;如果打算存放的檔案是大量小於 2k 的迷你檔案的話就要考慮多建立一些 Inode)。取訊息佇列時,報錯No space left on devicesysctl -w kernel.msgmni=128 就是這個東東,MSGMNI --- 這個引數決定了系統中同時執行的最大的message queue的個數在root下用sysctl kernel.msgmni檢查該引數,sysctl -w kernel.msgmni=XXX重新設定即可。
No space left on device
相關文章
- 關於“No space left on device的原因”dev
- 沒有磁碟空間 No space left on devicedev
- write /usr/include/openssl/cms.h: no space left on devicedev
- openGauss 出現-Error-No-space-left-on-device-提示Errordev
- java踩坑之java.io.IOException: No space left on deviceJavaExceptiondev
- Linux-x86_64 Error: 28: No space left on device問題LinuxErrordev
- ORA-27102: out of memory Linux Error: 28: No space left on deviceLinuxErrordev
- ORA-27301: OS failure message: No space left on device解決一例AIdev
- Apache啟動報錯No space left on device: AH00023該怎麼解決Apachedev
- ORA-27102: out of memory Linux-X86_64 Error: 28: No space left on deviceLinuxErrordev
- 模擬LINUX磁碟分割槽有可用空間無可用Inodes時報錯:No space left on deviceLinuxdev
- startup ORA-27102: out of memory Linux-x86_64 Error: 28: No space left on deviceLinuxErrordev
- Docker啟動出現"No space left on device" 或者 docker日誌太多導致磁碟佔滿問題Dockerdev
- Oracle案例06—— OGG-01098 Could not flush "./dirdat/e1000004383" (error 28, No space left on device)OracleErrordev
- 啟動Oracle報錯ORA-27102: out of memory、Linux-x86_64 Error: 28: No space leftOracleLinuxError
- mysql + left joinMySql
- wrap devicedev
- device dirverdev
- platform devicePlatformdev
- raw devicedev
- SQL Server LEFT FunctionsSQLServerFunction
- SQL Server Left joinSQLServer
- Hilbert Space
- device-mapper create ioctl failed: Device or resource busydevAPPAI
- clear:left/right 理解
- 【MySQL】LEFT JOIN 踩坑MySql
- Tablespace Space Script
- mysql left join轉inner joinMySql
- oracle update left join查詢Oracle
- Oracle Left join right jionOracle
- sql server left join問題SQLServer
- Multipath and Device MapperdevAPP
- raw device, first blockdevBloC
- about raw device[zt]dev
- show_space.sqlSQL
- Oracle DBMS_SPACEOracle
- space.itpub印象
- 執行時報錯RuntimeError: expected device cpu but got device cuda:0ErrordevGo