簡體   English   中英

為什么進程專用內存在服務器上減少了?

[英]Why does dedicated memory to a process reduces on the server?

我在服務器上運行Java代碼。 一開始,我檢查了可用內存,發現有20GB以上的可用內存。 然后我運行我的代碼。 它首先以大約9GB的RAM開始,但后來減少到大約2.7GB。

我再次檢查了可用內存,它仍然約為20GB。 但是我不明白為什么服務器決定減少進程的專用內存。 盡管有些其他用戶正在使用大約20GB的RAM進行處理,但是我知道用戶可以訪問的內存數量沒有限制。

誰能解釋為什么內存減少?

如果您需要更多信息,我想說的是我在談論物理內存(RES)。 專門用於我的進程的虛擬內存始終為32.8GB。 同時,我的代碼需要很多時間才能運行。 它已經運行了十多個小時。 一個過程的持續時間可以有效嗎? (我自己的回答是“否”,因為每當我使用top命令檢查內存分配時,我都會看到另一個用戶正在使用20GB的RAM,並且它永遠不會改變!

我假設您正在使用top所以您在談論Unix / Linux。

最可能的原因是您的應用程序進入了執行模式,在該模式下,它正在積極使用的對象的工作集全部位於相對較少的內存頁中。 如果您的應用程序不讀取或寫入其他頁面,則虛擬內存系統將逐漸刷新到磁盤(如果它們臟了),然后將它們添加到空閑池中。 大概頁面隨后被其他進程使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM