由于内存不足,服务器崩溃了几次 - 我如何才能找出每个进程有多少可用内存?

由于内存不足,服务器崩溃了几次 - 我如何才能找出每个进程有多少可用内存?

我们的流量激增,并出现了很多以下错误:

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] 命令,

htop 结果

来源:二元潮汐

答案2

要了解系统的内存使用情况,请使用命令free。对于内存计算每个进程,参见如何显示每个进程的内存使用情况

相关内容