我正在使用带有最新 1GB 内存的EC2
实例。我正在使用with上传和使用最新的with转换图片。我的配置:t4g.micro
arm64
ubuntu
nginx
PHP-FPM
image.intervention
GD
PHP_FPM
pm = static
pm.max_children = 1
pm.max_requests = 300
和 php.ini:
max_execution_time = 5
memory_limit = 100M
opcache.enable = 1
opcache.jit_buffer_size = 50M
opcache.jit = 1255
然而我仍然时不时地在我的网站上收到这些消息syslog
:
Out of memory: Killed process 510 (php-fpm8.3) total-vm:490452kB, anon-rss:273404kB, file-rss:2944kB, shmem-rss:3840kB, UID:1001 pgtables:708kB oom_score_adj:0
Out of memory: Killed process 510 (php-fpm8.3) total-vm:499780kB, anon-rss:282508kB, file-rss:2944kB, shmem-rss:3968kB, UID:1001 pgtables:720kB oom_score_adj:0
Out of memory: Killed process 20481 (php-fpm8.3) total-vm:495800kB, anon-rss:272472kB, file-rss:2944kB, shmem-rss:3456kB, UID:1001 pgtables:708kB oom_score_adj:0
Out of memory: Killed process 24725 (php-fpm8.3) total-vm:465556kB, anon-rss:247920kB, file-rss:2944kB, shmem-rss:1664kB, UID:1001 pgtables:648kB oom_score_adj:0
Out of memory: Killed process 24732 (php-fpm8.3) total-vm:458888kB, anon-rss:240892kB, file-rss:2816kB, shmem-rss:3456kB, UID:1001 pgtables:624kB oom_score_adj:0
Out of memory: Killed process 24739 (php-fpm8.3) total-vm:458280kB, anon-rss:240372kB, file-rss:2816kB, shmem-rss:3456kB, UID:1001 pgtables:628kB oom_score_adj:0
有时它会导致我的实例根本没有响应,甚至没有响应SSH
,并且 CPU 在 AWS 监视器上达到 60%,并保持在那里,直到我多次手动单击重新启动实例,这可能会导致硬重启。
我的php
脚本很简单,获取后期图像文件,将其转换并保存,image.intervention
仅使用函数,不会引发错误。 OOM 被杀可能每周发生一次..
我尝试将配置调整到尽可能低的配置,降低配置pm.max_requests
对我来说不是解决方案。我想要的只是避免 OOM 干预,控制php
在崩溃之前杀死占用大量内存的请求PHP-FPM
。我已经修改了PHP-FPM
服务以在失败时自行重启,但有时它会用高 CPU 来破坏整个ubuntu
系统,并使其无法响应任何事情,这是我首先必须避免的。
php
arm
是否可以避免特定实例上的泄漏x86
?如何稳定我的实例?