최신 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
AWS 모니터에서 CPU가 60%에 도달하고 수동으로 클릭하여 인스턴스를 여러 번 다시 시작할 때까지 그 상태를 유지하므로 하드 재부팅이 발생할 수 있습니다.
내 php
스크립트는 간단합니다. 게시물 이미지 파일을 가져와 변환하고 저장하며 image.intervention
함수를 사용하고 오류가 발생하지 않습니다. OOM 킬은 일주일에 한 번 정도 발생합니다.
구성을 가능한 가장 낮은 구성으로 조정하려고 하는데 구성을 낮추는 것은 pm.max_requests
나에게 해결책이 아닙니다. 내가 원하는 것은 OOM 개입을 피하고 php
충돌이 발생하기 전에 메모리 집약적인 요청을 종료하는 것을 제어하는 것입니다 PHP-FPM
. PHP-FPM
오류 발생 시 자동으로 다시 시작되도록 서비스를 수정했지만 때로는 ubuntu
높은 CPU로 인해 전체 시스템이 종료되고 어떤 것에도 응답하지 않게 되므로 우선 피해야 합니다.
php
arm
특정 인스턴스의 누수를 방지하는 것이 가능합니까 x86
? 인스턴스를 안정화하려면 어떻게 해야 합니까?