我在裝有16 G RAM和2個四核CPU的機器上使用SUSE 10 Linux。 有8個進程正在做一些工作(CPU密集型/網絡I/O)。其中4個存在內存泄漏(這些是測試條件,所以在這裏沒有泄漏問題)。 所有進程佔用的總空間約爲15.4 G,系統中只有200 MB空閒空間。 事情很好,幾個小時。但在此之後,malloc掛起(對於沒有內存泄漏的進程)。它堅持了4分鐘以上(注意CPU不是100%,但io已經明顯上升)。 現在在掛起的過程中沒有問題(它沒有損壞內存)。 malloc在做什麼? (它試圖整理或建立交換空間)。malloc在Linux中掛起
任何指針?
malloc可能不會做任何事情,它可能很容易被內核嘗試釋放內存給你,所以它可以給你空間(特別是如果你已經關閉在內核overcommit) – Spudd86 2010-06-17 16:22:51
你不能只是將gdb附加到掛起進程並檢查堆棧跟蹤? – Useless 2010-06-17 17:15:46