가능 동시 접속자 계산기
본문
<?php
// 서버의 CPU 코어 수 가져오기
$cpu_cores = (int)trim(shell_exec("nproc --all"));
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.05; // 한 사용자당 0.05 코어 필요
$memory_per_user = 0.01 * 1024; // 한 사용자당 0.01 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);
// 최소값을 선택하여 최종 접속 가능 인원 수 결정
$max_users = min($max_users_cpu, $max_users_memory, $max_users_network);
echo "최종 동시 접속 가능 인원 수: " . $max_users . "명\n";
// 현재 시간과 동시 접속 가능 인원 수 출력
echo date("Y-m-d H:i:s") . " - 현재 동시 접속 가능 인원 수: " . $max_users . "명\n";
?>
좋아요0
이 글을 좋아요하셨습니다
등록된 댓글이 없습니다.