개발

    728x90
    반응형

    [MySQL] CPU 사용률 모니터링 및 높은 쿼리 찾는 방법

    kubernetes 환경에서 실행되는 mysql pod의 cpu 사용률이 높아서 어느 쿼리가 실행되서 cpu 사용률이 높은지 확인해보았습니다.mysql이 실행되는 worker node 서버에서 명령어를 입력합니다.pidstat -t -p `pidof mysqld` 5해당 명령어는 mysqld 프로세스와 그 내부의 각 스레드가 5초 간격으로 소비하는 cpu 및 기타 리소스 사용량을 모니터링합니다.명령어의 각각의 의미는 아래와 같습니다.pidstat : 특정 pid의 cpu, 메모리, 디스크 사용량을 출력합니다.-t : 해당 프로세스의 모든 스레드(thread)별 통계를 함께 보여줍니다.-p : 모니터링할 특정 프로세스 id를 지정합니다.pidof mysqld : mysql 서버 프로세스(mysqld)의 프..

    spring boot kotlin 프로젝트에서 java 파일이 class 파일로 미생성 이슈

    spring boot kotlin 프로젝트에서 /src/main/kotlin 폴더에 신규로 java 파일을 만들고 서버를 시작 했는데build 결과물인 class 파일이 생기는 /build/classes 폴더에 java 파일들이 class 로 안 생겼습니다.Java 파일이 src/main/kotlin 아래에 있으면 기본적으로 Kotlin 소스 폴더로 인식되어 Java 파일이 컴파일 대상에 포함되지 않습니다. Gradle이나 IntelliJ의 기본 설정에서는 Kotlin 소스 폴더(src/main/kotlin)와 Java 소스 폴더(src/main/java)를 구분합니다.Java 파일은 src/main/java 폴더에 생성하면 IntelliJ와 Gradle이 해당 폴더를 Java 소스 폴더로 인식하여 Ja..

    CPU 사용량 모니터링(쿠버네티스)

    리눅스 서버의 모니터링을 위해 top 명령어로 cpu 사용량을 확인하니 100%가 넘는 프로세스가 확인됬습니다.그라파나에서 해당 서버의 cpu를 확인해보니 cpu는 여유 자원이 있었습니다.해당 프로세스는 kubernetes에서 실행된 pod이고 cpu 사용량이 100%를 넘어가지만 해당 프로세스의 동작은 이슈가 없었습니다.서버에 여유 cpu 자원은 있지만 100%가 넘는 프로세스가 나오는 이유는 Linux top 명령어는 각 프로세스가 사용 중인 cpu를 단일 코어 기준(즉, 100%가 한 코어의 전부 사용)으로 표시하기 때문입니다.만약 프로세스가 멀티스레딩되어 여러 코어를 활용한다면, 예를 들어 1.5개의 코어를 사용하면 cpu 사용량이 150%로 나타납니다.쿠버네티스 파드가 생성될 때 기본 cpu 개..

    [Kafka] Consumer Group 재연결 시 이전 메시지 무시하는 방법

    Kafka Consumer Group을 재연결하면 연결이 끊긴 이후에 쌓였던 메시지도 수신을 하게 됩니다.테스트 코드를 사용할때 이전의 메시지를 무시하고 재연결 이후에 신규로 토픽에 쌓이는 메시지를 수신하기 위해서는 아래와 같이 작성하면 됩니다.auto.offset.reset : latest(default 값) 설정latest 설정일 경우 가장 마지막 offset 부터 수신하게 됩니다. 연결이 끊긴 이후에 재연결되면 offset은 연결이 끊기기전에 마지막으로 읽은 메시지를 가리키기 때문에 재연결되기 전까지의 쌓였던 메시지를 수신하기 때문에 추가로 재연결 시 offset을 강제로 최신 메시지를 가리키게 바꿔줘야 합니다. consumer.subscribe(topicList, new ConsumerRebala..

    728x90
    반응형