inode使用率過高的解決方法

週末因爲一個鳥程序的日誌每條都瘋狂輸出到一個文件,直接把inode塞滿了。記一下排查方法和刪除大量文件所做的一些措施。

  1. 問題排查
for i in /*; do echo $i; find $i | wc -l; done

首先使用上面的這條命令一步步縮小範圍,確定在哪個目錄下inode的節點數過多異常。
最後我鎖定到了日誌目錄,可是裏面只有幾個日誌文件,在目錄下直接運行這條命令也只能看到可見文件的inode數,在上一級目錄卻發現inode數爲200多萬。
在目錄下運行ls -f命令發現有大量的隱藏文件,所以對這些文件需要進行刪除操作。

  1. 文件的刪除
    (1)很多人在博客上寫用rsync這條命令。新建一個空文件夾,然後使用rsync進行同步並刪除,使用之後inode的確被釋放出來了,可是速度真的慢。並不像網上說的快的一批。大概一秒也就刪了十個左右的文件。運行了好久沒啥用。
    (2)使用find之後接上xargs rm -f,這個比起rsync還是快一點。
    *可是等上面的命令運行結束之後,文件夾裏還是有文件,但是怎麼都刪不掉了。
    ls -f 顯示memory exhausted,rm -rf ./運行一會兒就被killed了。

    (3)最後使用ls -f | xargs -n 1 rm -rf 這條命令進行了刪除,速度看起來比之前的命令都更快一點。

所以我真的不知道爲什麼rsync並沒有那些博客裏說的那麼快,可能我輸入命令時的姿勢不夠正確吧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章