programing

열려 있는 MySQL 연결 수를 확인하려면 어떻게 해야 합니까?

prostudy 2022. 10. 13. 23:25
반응형

열려 있는 MySQL 연결 수를 확인하려면 어떻게 해야 합니까?

현재 요청 중에 열린 연결 수를 확인하려면 어떻게 해야 합니까?mysql_connectPHP에서 Apache에서 실행 중입니까?

내가 전화하면 알아mysql_connect같은 파라미터로 100회 기능하면 항상 같은 접속링크가 반환됩니다.연결이 이미 존재하면 새 연결이 시작되지 않습니다.

하지만 확실히 하고 싶은 게 있어mysql_connect새로운 것을 시작하지 않습니다.

저는 많은 데이터를 포함하는 레거시 시스템을 사용하고 있습니다.mysql_connect함수 호출

Apache에 설정이 있습니까?아니면 Apache 또는 MySQL 로그 파일에 이 수의 연결을 기록할 수 있는 방법이 있습니까?

몇 가지 방법이 있다고 생각합니다.

SHOW STATUS WHERE `variable_name` = 'Threads_connected'

또는 를 실행하여 에서 원하는 값을 찾을 수 있습니다.Id기둥.이전 PHP API에서mysql, 와 같은 기능을 하는 기능이 있습니다.SHOW PROCESSLIST,너무.

하지만 첫 번째 것은 너에게 효과가 있을 거야.다른 STATUS 변수도 확인해 보시기 바랍니다.

접속에 관한 기타 유용한 변수가 있습니다.특정 경우 코드가 너무 많은 접속을 하고 있지 않은지 알아내는 데 도움이 될 수 있습니다.코드를 실행하기 전과 실행 후의 값을 확인하세요.

# mysql -e 'SHOW STATUS WHERE variable_name LIKE "Threads_%" OR variable_name = "Connections"'

+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| Connections       | 22742 |
| Threads_cached    | 1     |
| Threads_connected | 87    |
| Threads_created   | 549   |
| Threads_running   | 51    |
+-------------------+-------+
  • 접속

    MySQL 서버에 대한 연결 시도 횟수(성공 여부)입니다.

  • 스레드_캐치

    스레드 캐시의 스레드 수입니다.

  • 스레드_연결됨

    현재 열려 있는 접속의 수.

  • 스레드_작성필

    연결을 처리하기 위해 생성된 스레드 수입니다.Threads_created가 크면 thread_cache_size 값을 늘릴 수 있습니다.캐시 미스 레이트는 Threads_created/Connections로 계산할 수 있습니다.

  • 스레드_실행 중

    sleeve 상태가 아닌 스레드 수.

현재 연결 상태:

mysqladmin status

보다Threads:count. 현재 연결에 대한 자세한 내용은 다음 명령을 사용하여 얻을 수 있습니다.

user@host:~$ mysqladmin -uroot -ppass extended-status | grep Threads
| Threads_cached                           | 0           |
| Threads_connected                        | 3           |
| Threads_created                          | 3           |
| Threads_running                          | 1           |

user@host:~$ mysqladmin -uroot -ppass processlist
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host      | db | Command | Time | State | Info             |
+----+------+-----------+----+---------+------+-------+------------------+
| 53 | root | localhost |    | Sleep   | 258  |       |                  |
| 54 | root | localhost |    | Sleep   | 253  |       |                  |
| 58 | root | localhost |    | Query   | 0    |       | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+

참고: mysqladmin -v -uroot -ppass processlist와 유사하다show full processlist.

커맨드는, 임의의 일의 프리픽스로 단축해, 동시에 호출할 수 있습니다.

user@host:~$ mysqladmin -v -uroot -ppass proc stat
+----+------+-----------+----+---------+------+-------+-----------------------+
| Id | User | Host      | db | Command | Time | State | Info                  |
+----+------+-----------+----+---------+------+-------+-----------------------+
| 53 | root | localhost |    | Sleep   | 951  |       |                       |
| 54 | root | localhost |    | Sleep   | 946  |       |                       |
| 65 | root | localhost |    | Query   | 0    |       | show full processlist |
+----+------+-----------+----+---------+------+-------+-----------------------+
Uptime: 1675  Threads: 3  Questions: 171  Slow queries: 0  Opens: 235  
Flush tables: 1  Open tables: 57  Queries per second avg: 0.102

MySQL 명령어 show processlist를 사용하여 연결 수를 가져올 수 있습니다.

접속 수는 보이지 않지만 mysql 서버로의 접속은 제한할 수 있습니다.

언급URL : https://stackoverflow.com/questions/6502036/how-can-i-see-how-many-mysql-connections-are-open

반응형