解決方法:1、如果是磁盤分區“block”或“inode”空間使用率達到“100%”,可通過擴容云硬盤來解決;2、如果是已刪除文件因句柄被占用未釋放導致相應空間未釋放,可用“kill -9 進程編號”命令,通過結束進程釋放磁盤空間來解決。
本教程操作環境:linux5.9.8系統、Dell G3電腦。
問題描述
在linux操作系統云服務器中創建文件時提示空間不足:No space left on device
可能原因
-
磁盤分區block空間使用率達到100%。
-
磁盤分區inode空間使用率達到100%。
-
已刪除文件因句柄被占用未釋放導致相應空間未釋放。
-
fs.inotify.max_user_watches值耗盡
磁盤分區block空間使用率達到100%
執行以下命令查看磁盤空間。
df?-h
如回顯信息如下所示說明block空間使用率100%。
解決方案:擴容云硬盤。
磁盤分區inode空間使用率達到100%
執行以下命令查看磁盤空間。
df?-i
如回顯信息如下所示說明inode空間使用率100%。
解決方案:擴容云硬盤。
已刪除文件因句柄被占用未釋放導致相應空間未釋放
-
登錄服務器,執行df -h查看磁盤block空間使用率為100%。
-
執行df -i查看磁盤inode空間使用率較低,如下截圖所示,本例inode空間使用率為1%。
-
執行du -sh查看文件占用空間和磁盤可用空間相差較大。
解決方案:
執行以下命令,查找當前分區是否存在未被清除句柄的文件。
lsof?|grep?delete
執行以下命令,結束進程釋放磁盤空間。
kill?-9?進程編號
fs.inotify.max_user_watches值耗盡
Linux操作系統云服務器提示空間不足:No space left on device
解決方案:
執行以下命令,編輯/etc/sysctl.conf文件。
vi?/etc/sysctl.conf
補充如下信息:
fs.inotify.max_user_watches?=?524288
執行以下命令使修改生效。
sysctl?-p
Inotify用于監視文件系統事件, 默認情況下可監視的每個真實用戶ID創建的文件數量 上限為8192,可以通過執行以下命令獲取當前的inotify文件監視限制。
cat?/proc/sys/fs/inotify/max_user_watches
如果此限制不足以監視所有文件,必須增加限制以使正常工作。
相關推薦:《Linux視頻教程》