最近聽說某省的公司採用的國內某主流磁碟陣列廠家的多路徑軟體,寫日誌時,把系統記憶體慢慢耗光了。
磁碟陣列上是資料庫伺服器,國產linux作業系統。
今天寫了乙個小的測試程式,
#include #include #include #define filename "abc.txt"
int main(void)
exit(0);
}int log(char *logtype,char *logtext,int i)
fprintf(fd, "%d\t%s\n",i, logtext);
fflush(fd);
fclose(fd);
}
gcc test.c
./a.out之後
不斷用top、ps -aux|grep a.out 、free -m 、ls -lrth、lsof不斷的進行觀察。
結果是這樣滴:
測試環境,工作站4g物理記憶體
用free -m可以看到明顯的可用記憶體在不斷往下降,執行小幾十分鐘後,可用記憶體從2個多g降為100m以下。
那麼這個記憶體是否是a.out程序使用了呢?
ps -aux檢視,a.out程序cpu占有率99%,只佔了單核的99%,一共有16核。
但是記憶體使用基本為0,ps -aux顯示為0
top中看到的結果也和ps -aux一樣。
ls -lrth看到產生的abc.txt這個時候大小大約為2g了。
lsof |wc 和lsof|grep a.out看結果都基本沒變,lsof|grep a.out就5、6個。lsof |wc一直是2700,a.out執行前都是這麼多。看來test.c中的fclose關閉是有效的。
最奇怪的是將a.out停下來半個小時了,free -m看記憶體還沒漲起來。
記憶體去哪兒呢? 請高手指教下。
時間去哪兒了
人生的意義就在於你永遠也不清楚下一秒鐘會發生什麼!創業公司的故事還麼完,而我為什麼沒寫呢?我找回了時間。我的另乙個計畫正在發生中。而現在我終於有機會坐下來和大家聊聊時間的問題了 作為程式設計師,時間比別人都過得快。修改 編譯,部署,測試,除錯,修改,編譯 不知不覺已經深夜。突然有一天,我的生活變了。...
沉浸感去哪兒了?
獨坐在書房,享受乙份難得的寧靜,忽然發現許久沒有好好地寫一篇部落格,好好地看一本書,甚至好好地聽一首歌了。就像我現在坐在這裡寫這篇部落格,似乎也是在強迫自己找回以前那種專心於某件事務的感覺。翻看以前自己以前的部落格文章,發現有不少還是挺深入的,深入的讓我自己都懷疑是不是自己寫的,但至少說明那時候的自...
去哪兒面試
1.專案和mina 1 執行緒池機制,為何要用三個執行緒池?ioacceptor ioprocessor iohandler 連線到建立 io cpu 乙個selector專門用來響應連線的建立 op accept 有多少連線都能接過來?還有乙個selector專門響應讀 op read iopro...