由於記憶體不足,伺服器崩潰了幾次 - 我怎麼知道每個進程有多少可用記憶體?

由於記憶體不足,伺服器崩潰了幾次 - 我怎麼知道每個進程有多少可用記憶體?

我們的流量出現了巨大的成長,並出現了許多這樣的錯誤:

Feb 17 10:44:13 111488 kernel: [8275767.506198] Out of memory: Kill process 20577 (apache2) score 52 or sacrifice child
Feb 17 11:02:06 111488 kernel: [8276839.559141] Out of memory: Kill process 20719 (mysqld) score 75 or sacrifice child

正如你所看到的,它不僅僅是一個進程,還有 apache2 和 mysqld,所以我增加了伺服器上的 RAM。我如何檢查這是否可用於這些進程?

答案1

您正在尋找 [top] 指令

top - 15:20:30 up  6:57,  5 users,  load average: 0.64, 0.44, 0.33
Tasks: 265 total,   1 running, 263 sleeping,   0 stopped,   1 zombie
%Cpu(s):  7.8 us,  2.4 sy,  0.0 ni, 88.9 id,  0.9 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   8167848 total,  6642360 used,  1525488 free,  1026876 buffers
KiB Swap:  1998844 total,        0 used,  1998844 free,  2138148 cached

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND                                                                                 
 2986 enlighte  20   0  584m  42m  26m S  14.3  0.5   0:44.27 yakuake                                                                                 
 1305 root      20   0  448m  68m  39m S   5.0  0.9   3:33.98 Xorg                                                                                    
 7701 enlighte  20   0  424m  17m  10m S   4.0  0.2   0:00.12 kio_thumbnail

或 [htop] 指令,

頂級結果

來源:二元潮汐

答案2

若要取得系統記憶體使用情況的概覽,請使用指令free。用於記憶體計算每個行程,參見如何顯示每個進程的記憶體使用情況

相關內容