1. 程式人生 > >記錄一次很有意思的bug

記錄一次很有意思的bug

大量 發現 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