반응형
PHP 메모리 사용량 확인
1. CPU 개수 출력
nproc
4
2. 모든 php-fpm 프로세스 정보 출력(php-fpm8.3)
- comm : 명령어 (프로세스 이름)
- rss : 실제 메모리 사용량 (Resident Set Size) (KB)
ps -ylC php-fpm8.3
S UID PID PPID C PRI NI RSS SZ WCHAN TTY TIME CMD
S 0 667 1 0 80 0 20540 51058 ep_pol ? 00:00:00 php-fpm8.3
S 33 830 667 0 80 0 7748 51170 skb_wa ? 00:00:00 php-fpm8.3
S 33 831 667 0 80 0 7748 51171 skb_wa ? 00:00:00 php-fpm8.3
3. php-fpm 프로세스의 메모리 사용량 출력
ps -eo rss,pid,user,command --sort -rss | grep -v grep | \
awk '{ hr=$1/1024 ; printf("%13.2f Mb ", hr) } { for (x=4; x<=NF; x++) { printf("%s ", $x) } print "" }' | grep php-fpm
20.06 Mb php-fpm: master process (/etc/php/8.3/fpm/php-fpm.conf)
7.57 Mb php-fpm: pool www
7.57 Mb php-fpm: pool www
4. php-fpm 프로세스의 평균 메모리 사용량
ps --no-headers -o "rss,cmd" -C php-fpm8.3 | \
awk '{ sum+=$1 } END { if (NR > 0) { printf ("%d%s\n", sum/NR/1024, "M") } else { print "0M" } }'
11M
5. 모든 프로세스의 메모리 사용량 출력
ps -eo rss,pid,user,command --sort -rss | grep -v grep | \
awk '{ hr=$1/1024 ; printf("%13.2f Mb ", hr) } { for (x=4; x<=NF; x++) { printf("%s ", $x) } print "" }' | head -n 10
0.00 Mb COMMAND
82.26 Mb /usr/sbin/mariadbd
28.86 Mb /lib/systemd/systemd-journald
26.60 Mb /sbin/multipathd -d -s
20.98 Mb /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
20.20 Mb /usr/libexec/packagekitd
20.06 Mb php-fpm: master process (/etc/php/8.3/fpm/php-fpm.conf)
18.52 Mb /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers
12.68 Mb /usr/libexec/udisks2/udisksd
11.85 Mb /usr/sbin/ModemManager
728x90
pm.dynamic 모드에서 PHP 프로세스를 설정 - 1
- CPU : 40EA
- 메모리 : 32GB = 32,000MB
- PHP 프로세스당 메모리 : 80MB
서버의 메모리 용량에 따라 최대 프로세스 수를 계산합니다.(시스템용으로 4GB 할당)
28,000MB / 80MB = 350
- pm.start_servers : 초기 서버 시작 시 몇 개의 프로세스를 시작할지 설정합니다. vCPU 수를 기준으로 20~40개 정도로 설정하는 것이 좋습니다.
- pm.min_spare_servers : 최소 유휴 프로세스 수를 설정합니다. 보통 vCPU 수의 절반 정도인 15~20개를 설정할 수 있습니다.
- pm.max_spare_servers : 최대 유휴 프로세스 수를 설정합니다. vCPU 수에 맞춰 20~40개 정도로 설정하는 것이 좋습니다.
pm = dynamic
pm.max_children = 350
pm.start_servers = 30
pm.min_spare_servers = 20
pm.max_spare_servers = 40
pm.dynamic 모드에서 PHP 프로세스를 설정 - 2
- CPU : 8EA
- 메모리 : 16GB = 16,000MB
- PHP 프로세스당 메모리 : 50MB
서버의 메모리 용량에 따라 최대 프로세스 수를 계산합니다.(시스템용으로 2GB 할당)
14,000MB / 50MB = 280
- pm.start_servers : 초기 PHP-FPM 서버 시작 시 몇 개의 프로세스를 시작할지 설정합니다. vCPU 수를 고려하여 8~16개로 설정할 수 있습니다.
- pm.min_spare_servers : 최소 유휴 프로세스 수를 설정합니다. 일반적으로 vCPU 수의 절반 정도인 4~8개로 설정할 수 있습니다.
- pm.max_spare_servers : 최대 유휴 프로세스 수를 설정합니다. 초기값으로 vCPU 수와 비슷한 8~16개로 설정할 수 있습니다.
pm = dynamic
pm.max_children = 280
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 15
참고URL
- PHP Documentation : FastCGI Process Manager(FPM)
0.00Mb 명령 82.26Mb /usr/sbin/mariadbd 28.86Mb /lib/systemd/systemd-journald 26.60Mb /sbin/multipathd -d -s 20.98Mb /usr/bin/python3 /usr/share/unattended-upgrades/unattended- 업그레이드-종료 --wait-for-signal 20.20Mb /usr/libexec/packagekitd 20.06Mb php-fpm: 마스터 프로세스(/etc/php/8.3/fpm/php-fpm.conf) 18.52Mb /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers 12.68Mb /usr/libexec/udisks2/udisksd 11.85Mb /usr/sbin/ModemManager
728x90
반응형
'리눅스' 카테고리의 다른 글
우분투에서 needrestart를 비활성화하는 방법 (0) | 2024.10.22 |
---|---|
우분투에 MariaDB를 설치하는 방법 (3) | 2024.10.21 |
NGINX 저장소의 만료된 GPG 키 갱신 방법 (1) | 2024.10.17 |
PECL 구성에서 기본 채널 URL을 업데이트하는 방법 (0) | 2024.10.17 |
우분투에서 Redis를 완전히 삭제한 후 다시 설치하는 방법 (0) | 2024.10.16 |