카테고리 없음

MySQL - Connection / Thread

필유아사 2024. 5. 17. 18:34

 

DB 접속과 관련된 환경변수와 상태변수를 나타낸다.

환경 변수는 show variables like '환경변수'로 확인할 수 있고, 상태변수는 show status like '상태변수' 로 확인할 수 있다.

변수 설명 구분
max_connections MySQL 서버가 허용하는 MySQL 클라이언트 동시 연결 최대값.
max_connections +1"로 SUPER 권한을 가진 사용자(예 : root) +1의 연결 예약
환경변수
Max_used_connections 지금까지 기록된 동시 연결 최대 수 상태변수
Threads_connected 현재 열려있는 연결 수 상태변수
Threads_created 연결을 처리하기 위해 생성된 스레드 상태변수
Threads_running 작동중인 스레드 상태변수
Threads_cached   상태변수
Thread_cache_size 재사용을 위해 서버가 캐시해야 하는 스레드 수 환경변수

 

Thread_cache_size

재사용을 위해 서버가 캐시해야 하는 스레드 수입니다. 클라이언트의 연결이 끊어지면 해당 스레드가 thread_cache_size보다 적은 경우 클라이언트의 스레드가 캐시에 저장됩니다. 스레드에 대한 요청은 가능하면 캐시에서 가져온 스레드를 재사용하여 충족되며, 캐시가 비어 있는 경우에만 새 스레드가 생성됩니다. 새로운 연결이 많은 경우 성능을 향상시키기 위해 이 변수를 늘릴 수 있습니다. 일반적으로 눈에 띄는 성능 향상을 제공하지 않습니다. 그러나 서버가 초당 수백 개의 연결을 확인하는 경우 일반적으로 대부분의 새 연결이 캐시된 스레드를 사용할 수 있도록 thread_cache_size를 충분히 높게 설정해야 합니다. Connections 및 Threads_created 상태 변수 간의 차이점을 조사하면 스레드 캐시가 얼마나 효율적인지 확인할 수 있습니다. 

 

기본값은 다음 수식을 기반으로 하며 한도는 100입니다.

 

8 + (max_connections / 100)

 

 

 

 

참고)

Based on the info in the MySQL Documentation you should do the following: Find out what the highest number of simultaneous connections mysqld has had using ConnectionsThreads_created, and Max_used_connections,

  • SHOW GLOBAL STATUS LIKE 'Connections';
  • SHOW GLOBAL STATUS LIKE 'Threads_created';
  • SHOW GLOBAL STATUS LIKE 'Max_used_connections';

Try calculating the following

Threads_created / Connections : If this is over 0.01, then increase thread_cache_size. At the very least, thread_cache_size should be greater than Max_used_connections.

 

 

Questions / Uptime / Connections / Max_used_connections
Uptime 은 서버가 가동되고 나서 초를 의미하고, Questions는 서버가 가동되고 나서 수행된 쿼리의 수이다.
Connections는 서버 가동되고 나서 연결시도된 수치다.(현재 연결수는 Threads_connected)
Max_used_connections는 서버 가동 이후 최대 동시 연결 수치이다.
 
  • Questions/Uptime = 초당 쿼리수
  • Connections / Uptime = 초당 연결수
  • Questions / Connections = 연결당 쿼리 처리수
 
놀고 있는 시간과 바쁜시간의 차이를 알기위해 1분간격으로 측정한다면 다음과 같은 내용 확인이 가능하다.
1분간의 초당 쿼리 처리건수 = (현재의 Questions – 1분전의 Question) / (현재의 Uptime / 1분전의 Uptime)
 
참조 :