記憶體去哪兒了?

2021-06-25 22:11:19 字數 948 閱讀 6559

最近聽說某省的公司採用的國內某主流磁碟陣列廠家的多路徑軟體,寫日誌時,把系統記憶體慢慢耗光了。

磁碟陣列上是資料庫伺服器,國產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...