mysql 서버 상태 확인하기(show status) | db connection 전후 Threads 관련 상태변수 확인

2023. 1. 11. 14:59·Database

mysql 데이터베이스 서버 상태 확인하기

데이터베이스의 환경변수값, 상태변수값을 조회하여 서버의 상황을 체크할 수 있다.

 

■ 환경변수 조회 : show variables

└> 환경변수값을 조정해서 mysql의 상태 제어 가능 

 

■ 상태변수 조회 : show status 

└> 상태변수값을 통해 mysql의 각종 상태(동작정보)를 확인 가능

 

 

 

 

<확인해보기>

 

■ 환경변수 조회

show variables 쿼리 결과이다.

각종 환경변수 값을 확인할 수 있다.

 

■ 상태변수 조회

show status 쿼리 결과이다.

각종 상태변수 값을 확인할 수 있다.

 

 

 


Thread 관련 상태변수 값 확인해보기

 

db서버의 thread 관련 상태변수 값을 확인해보자.

show status like '%Threads%';

 

 

나는 지금 DB connection을 맺는 실습을 하고 있다.

(DataSource를 통해서 connection 맺기)

 

DB connection을 맺으면 Thread가 생긴다.

그래서 위 상태변수중에

Threads_connected, Threads_created 값을 확인해볼 것이다.

 

 

(1) DB와 connection을 맺고나서 10초동안 connection 유지해보자.

(2) 10초가 지나면 connection이 끊긴다.

두 상황 (1), (2)에서 상태변수 Threads_connected, Threads_created가 어떤 값을 가지는지 확인해볼 것이다.

 

public void testFindAll() throws InterruptedException {
        // DataSource를 통해 connection을 얻는 코드 존재
        
        Thread.sleep(10000);  // 이렇게 10초동안 connection 유지하는 틈을 타서 상태변수 값을 확인해볼 것임
}

 

■ connection 유지 중 Thread 관련 상태변수 값

 

■ connection이 풀린 뒤 Thread 관련 상태변수 값

 

 

[ 관찰 ]

 

>> Thread_connected 값 확인

connection 유지 중: 13

connection 풀린 후: 3 

 

>> Thread_cached 값 확인

connection을 맺고 나서 캐시가 생겼다.

 

>> connection 맺는 코드를 여러번 실행하니까 Thread_created가 실행시마다 1씩 증가했다.

 

HikariCP는 기본적으로 10개의 connection을 pool에 채워넣는다고 한다.

>> 그래서 connection 맺은 후에 Threads_connected가 10개 늘어났구나!

 

 

 


참고) HikariDataSource의 Connection Pool

https://code-lab1.tistory.com/209

 

DB 커넥션 풀(Connection pool)이란? HikariCP란?

커넥션 비용 WAS(Web Application Server)와 데이터베이스 사이의 연결에는 많은 비용이 든다. MySQL 8.0을 기준으로 INSERT 문을 수행할 때 필요한 비용의 비율은 다음과 같다. 괄호 안의 숫자가 비율을 의

code-lab1.tistory.com

미리 10개를 pool에다가 만들어두고, connection이 필요할 때마다 pool에서 가져와 쓰는 것이다.

자세한 내용은 위 링크에서 공부할 수 있겠다.


 

 

 

 

+ 추가 학습 +

아래와 같이 HikariCP가 pool에 connection을 채우는 최소 개수를 100개로 늘려서 상태변수를 확인해보자. 

 

HikariCP가 connection을 10개 말고 100개를 pool에 채우도록 설정하기

static class Config {

    @Bean
    public DataSource dataSource(){
        var datasource =  DataSourceBuilder.create()
                .url("jdbc:mysql://localhost/order_mgmt")
                .username("root")
                .password("root1234!")
                .type(HikariDataSource.class)
                .build();
        datasource.setMaximumPoolSize(1000);
        datasource.setMinimumIdle(100);
        return datasource;
    }
}

나는 위와 같이 HikariDataSource 구현체를 쓰는 DataSource를 만든 상태인데, 아래 코드를 추가해주었다.

  datasource.setMaximumPoolSize(1000);
  datasource.setMinimumIdle(100);

 

위와 같이 connection 개수 설정을 하고 show status like '%Threads%'; 쿼리를 통해 상태변수를 확인해보자.

  connection pool 최대 사이즈를 1000개로 설정

  connection pool에  기본적으로 100개의 connection을 채움

 

 

■ connection 유지 중 - Thread관련 상태변수 값

 

■ connection 풀린 상태 - Thread관련 상태변수 값

 

 

Threads_connected를 확인해 보면, connection이 풀리기 전후 100차이가 난다.

HidariDataSource가 pool에 100개의 connection을 생성했었음을 확인 가능하다. 상태변수를 통해서!!

 


 

 

'Database' 카테고리의 다른 글

[DB] 인덱스 사용 이유 이해하기  (0) 2023.10.17
[H2] Column이 drop 되지 않음 | JPA Bean을 직접 주입하는 실습 중  (0) 2023.01.25
[DB] 상속 관계 매핑 전략 선택하기  (2) 2022.12.30
ObjectInputStream | file에 이어쓰기로 writeObject 후 readObject하려할 때 object를 못읽는 문제  (0) 2022.12.28
FK 제약조건 삭제하기 - Cannot drop column <FK컬럼명>: needed in a foreign key constraint  (1) 2022.10.11
'Database' 카테고리의 다른 글
  • [DB] 인덱스 사용 이유 이해하기
  • [H2] Column이 drop 되지 않음 | JPA Bean을 직접 주입하는 실습 중
  • [DB] 상속 관계 매핑 전략 선택하기
  • ObjectInputStream | file에 이어쓰기로 writeObject 후 readObject하려할 때 object를 못읽는 문제
히어로맛쿠키
히어로맛쿠키
yeny_lab히어로맛쿠키 님의 블로그입니다.
  • 히어로맛쿠키
    yeny_lab
    히어로맛쿠키
  • 전체
    오늘
    어제
    • 분류 전체보기 (388)
      • 미분류글 (30)
        • ㅇ (2)
      • JAVA (84)
        • Effective Java (1)
        • Application (21)
      • 컴퓨터구조 & OS (29)
      • 자료구조 + 알고리즘 (43)
      • Database (12)
      • 컴파일러 (10)
      • 수학 (33)
        • 미분방정식 (12)
      • 데이터분석과 머신러닝 (38)
      • 기타 (58)
      • yyeeennyy (25)
  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
히어로맛쿠키
mysql 서버 상태 확인하기(show status) | db connection 전후 Threads 관련 상태변수 확인

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.