AWS 内存使用率过高。如何检测原因?

AWS 内存使用率过高。如何检测原因?

我正在使用 Amazon EC2 实例 t2.small。内存使用量始终增加,最高可达 90% 以上。

内存使用率 > 90%

$ free -m
             total       used       free     shared    buffers     cached
Mem:          1993       1925         68          0          1         24
+ buffers/cache:       1899         94
Swap:         2047        994       1053

这是我的内存使用情况:

$ps aux --sort=-resident|head -11

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
webapp    8640  9.4 81.1 3223112 1657264 ?     Sl   Oct24  28:00 puma: cluster worker 0: 9938 [current]
root      9862  0.1  6.7 1057364 137712 ?      Sl   Oct23   2:50 sidekiq 4.2.10 current [0 of 5 busy]
healthd   2784  0.0  0.9 684904 19360 ?        Ssl  Oct18   4:25 puma 2.11.1 (tcp://127.0.0.1:22221) [healthd]
root      4057  0.3  0.6 536908 12652 ?        Ssl  Oct18  29:52 /usr/bin/python2.7 /opt/aws/bin/cfn-hup
nginx     9905  2.6  0.4 156088  9748 ?        S    Oct23  67:02 nginx: worker process
webapp    9938  0.0  0.1 121660  3800 ?        Ssl  Oct23   0:05 puma 3.1.0 (unix:///var/run/puma/my_app.sock) [current] 
ec2-user 21670  0.0  0.1 117372  2544 pts/0    R+   02:39   0:00 ps aux --sort=-resident
root      2309  0.0  0.1 276100  2140 ?        Ssl  Oct18   0:10 /usr/bin/amazon-ssm-agent 
ec2-user 15697  0.0  0.1 115488  2124 pts/0    Ss   00:27   0:00 -bash
root         1  0.0  0.0  19692  1800 ?        Ss   Oct18   0:01 /sbin/init

我无法找出 Web 应用程序内存使用率如此之高的原因,而且它一直在增加。所以现在我们设置了一个作业,每小时重启一次实例。有什么方法可以找出导致我的 Web 应用程序内存使用率高的原因吗?非常感谢。

答案1

这里有一些讨论,表明它可能是由于 ruby​​ 版本导致的内存泄漏:

https://github.com/puma/puma/issues/342

相关内容