서버 점검 안내

dsclub은 서비스의 안정성과 성능 향상을 위해
매일 04시 30분에 정기 점검이 진행됩니다.

점검 시간: 오전 4시 30분 ~ 4시 35분

해당 시간 동안 일시적으로 서비스에 접속이 불가능하오니, 양해 부탁드립니다.

우분투 nginx php-fpm오류 (php7.4) > 코딩 스토리

우분투 nginx php-fpm오류 (php7.4)

페이지 정보

작성자 profile_image tak2 (192.♡.0.1) 작성일 24-08-17 23:17 조회 277 댓글 0

본문

<?php

// 서버의 CPU 코어 수 가져오기

$cpu_cores = shell_exec("nproc --all");

$cpu_cores = (int)trim($cpu_cores);

echo "CPU 코어 수: " . $cpu_cores . " (nproc --all 명령어 사용)\n";


// 서버의 메모리 용량 (MB) 가져오기

$memory_info = shell_exec("free -m");

preg_match('/Mem:\s+(\d+)\s+/', $memory_info, $matches);

$memory_mb = (int)$matches[1];

echo "서버 메모리 용량: " . $memory_mb . "MB (free -m 명령어 사용)\n";


// 네트워크 속도 측정 (예: eth0 인터페이스 사용)

$network_info = shell_exec("cat /sys/class/net/eth0/speed");

$network_speed_mbps = (int)trim($network_info);

echo "네트워크 속도: " . $network_speed_mbps . "Mbps (eth0 인터페이스 속도)\n";


// 한 사용자당 필요한 리소스 (CPU 코어, 메모리, 네트워크 대역폭)

$cpu_per_user = 0.25; // 한 사용자당 0.25 코어 필요

$memory_per_user = 0.5 * 1024; // 한 사용자당 0.5 GB 필요 (MB로 변환)

$network_per_user_mbps = 1; // 한 사용자당 1 Mbps 필요


// 최대 접속 가능 인원 수 계산

$max_users_cpu = floor($cpu_cores / $cpu_per_user);

$max_users_memory = floor($memory_mb / $memory_per_user);

$max_users_network = floor($network_speed_mbps / $network_per_user_mbps);


// 계산 과정 출력

echo "최대 접속 가능 인원 수 계산:\n";

echo "- CPU 기준: " . $max_users_cpu . "명 (계산: " . $cpu_cores . " / " . $cpu_per_user . ")\n";

echo "- 메모리 기준: " . $max_users_memory . "명 (계산: " . $memory_mb . " / " . $memory_per_user . ")\n";

echo "- 네트워크 기준: " . $max_users_network . "명 (계산: " . $network_speed_mbps . " / " . $network_per_user_mbps . ")\n";


// 최소값을 선택하여 최종 접속 가능 인원 수 결정

$max_users = min($max_users_cpu, $max_users_memory, $max_users_network);

echo "최종 동시 접속 가능 인원 수: " . $max_users . "명\n";


// 종합적으로 계산 결과 출력

echo "종합 계산 결과:\n";

echo "최대 동시 접속 가능 인원 수는 CPU, 메모리, 네트워크 자원을 기준으로 계산되었습니다.\n";

echo "CPU 기준: " . $max_users_cpu . "명, 메모리 기준: " . $max_users_memory . "명, 네트워크 기준: " . $max_users_network . "명\n";

echo "결과적으로, " . $max_users . "명이 동시에 접속할 수 있습니다.\n";


// 결과 출력 및 10초마다 반복

while (true) {

    // 현재 시간 출력

    echo date("Y-m-d H:i:s") . " - 현재 동시 접속 가능 인원 수: " . $max_users . "명\n";

    

    // 10초 대기

    sleep(10);

}

?>실행 후 서버의 모든 페이지에서 504 에러가 떠서 sudo systemctl restart nginx를 했지만 여전히 서버애서는 504 에러를 뱉었다.

여러번 시도했지만 해결되지 않자 서버를 재시작 하려고 했으나, ps aux | grep php 를 했는데 php-fpm관련 무언가가 빨간불이 들어와있었다. 솔직히 빨간색 글자가 뭘 의미하는진 모르겠지만 경고하는 것이라는 것을 본능적으로 느껴 급하게 sudo systemctl restart php7.4-fpm를 시도하니 문제 없이 바로 사이트에 접속이 되었다. 참고 하시라~

(나는 php7.4를 써서 php7.4-fpm이라 한 것이다 )

좋아요0 이 글을 좋아요하셨습니다
url 복사 카카오톡 공유 라인 공유 페이스북 공유 트위터 공유

등록된 댓글이 없습니다.

전체 269건
게시물 검색

접속자집계

오늘
1,259
어제
779
최대
4,271
전체
290,724