記錄一次很有意思的bug
阿新 • • 發佈:2018-02-10
大量 發現 mom 文件 參考 情況 top命令 一定的 決策
情景是這樣的:
log 一直在狂打不止,直到打滿了磁盤, 在上傳文件的時候發現只要是超過了1m就傳不上去。
解決策略
首先肯定是清除磁盤 幹掉無用的log,清除了之後發現問題並沒有解決,於是使用top命令查看內存使用情況 發現內存使用並不高,於是這個問題就很有意思了。
有如下幾種猜測:
1.程序內存泄漏 導致內存無法有效回收
經過重啟,仔細查看每個進程的內存情況發現 並非這種情況。
2.依稀記得linux文件目錄有大小限制 翻閱大量文檔發現大小制約的其實是Inode ,只有在大量的小文件的寫入時候才會出現限制。
參考連接:http://www.ruanyifeng.com/blog/2011/12/inode.html
在經過1.2兩步試錯之後 發現自己可能走偏了。首先只有大小超過一定的限制之後才會無法寫入,其次 程序剛開始運行沒問題的。這些特征更像是觸發了某種內存保護機制。
是虛擬機的參數的設置嗎?
一連串的碰壁之後 幡然醒悟。 如果是虛擬機參數的設置,那麽應該是在剛開始就有限制,在momery和磁盤都還未滿的情況下,虛擬機應該有自動擴容的功能,不至於限制1m左右文件大小的讀寫。
那麽就是linux本身了。
3.經過排查分析,發現linux經過內存滿的時候會觸發讀寫保護機制,當內存恢復的時候,保護機制並不會撤銷。因此問題得解。
哈哈哈,這可能不算linux的bug 算是featrue 。
參考連接:http://www.it1352.com/764980.html
記錄一次很有意思的bug