세이박스

PHP 웹에서 서버 동시 접속자 수 확인 하기

웹프로그램
동시 접속자 확인 하기 위해선 서버에서 root 권환으로
netstat -n | grep 80 | grep ESTABLISHED | wc -l
이라고 실행하면 동시 80 포트로 접속한 사람 수 가 나타납니다.

netstat -n | grep 80
라고만 실행하면 Fin_Wait, Time_Wait 인 접속자 수 모두를 표시 하게 됩니다.

웹상에서 리눅스 명령을 실행할땐 exec 함수를 사용합니다.

<?
$cmd = "netstat -n | grep 80 | grep EST | wc -l";
exec($cmd, $cmd_result);
$count = sizeof($cmd_result);
echo "현재 접속자 수 : ".$count.";
echo "<br>";
$cmd = "netstat -n | grep 80";
exec($cmd, $cmd_result);
$count = sizeof($cmd_result);
echo "Fin_Wait, Time_Wait 포함 현재 접속자 수 : ".$count;
?>

출력결과 :
현재 접속자 수 : 10
Fin_Wait, Time_Wait 포함 현재 접속자 수 : 132

MYSQL 동시접속자 등 높을경우

데이타베이스
/usr/local/mysql/bin/mysqld_safe -O max_connections=3000 -O table_cache=512 -O wait_timeout=300 &

MySQL 동시 접속자 수 늘리기

데이타베이스
리눅스 Q&A자료실에 올라왔던 내용이기도 합니다.

인터넷 사용자들이 많아지면서 인기있는 웹 사이트에서는

Max connections 에러가 발생되는 것을 볼 수있을겁니다.

우선, MySQL은 동시에 연결될 수 있는 클라이언트의 수가

100입니다.

이런 에러가 발생한다면 먼저 접속되어있는 클라이언트의 수를
확인하셔야겠죠. 확인방법은 아래와 같습니다.
$ mysqladmin -u root -p variables | grep max_connection

| max_connections | 100

이제는, 클라이언트의 동시 접속자를 늘리는 명령입니다.
먼저 mysqld - 이 데몬을 kill 하셔야 겠죠...
$ safe_mysqld --set-variable max-connections=200 &
참고로, 리눅스나 솔라리스 계열에서는 클라이언트의 동시 접속자수가 500 ~ 1,000 까지 가능하다고 합니다.

이렇게 하신 후 다시 확인합니다.
$ mysqladmin -u root -p variables | grep max_connection

그럼 제한되어 있지만 원하시는 만큼의 동시접속자 수를

늘리시게 된겁니다.