728x90
반응형
리눅스 서버의 모니터링을 위해 top 명령어로 cpu 사용량을 확인하니 100%가 넘는 프로세스가 확인됬습니다.

그라파나에서 해당 서버의 cpu를 확인해보니 cpu는 여유 자원이 있었습니다.

해당 프로세스는 kubernetes에서 실행된 pod이고 cpu 사용량이 100%를 넘어가지만 해당 프로세스의 동작은 이슈가 없었습니다.
서버에 여유 cpu 자원은 있지만 100%가 넘는 프로세스가 나오는 이유는 Linux top 명령어는 각 프로세스가 사용 중인 cpu를 단일 코어 기준(즉, 100%가 한 코어의 전부 사용)으로 표시하기 때문입니다.
만약 프로세스가 멀티스레딩되어 여러 코어를 활용한다면, 예를 들어 1.5개의 코어를 사용하면 cpu 사용량이 150%로 나타납니다.
쿠버네티스 파드가 생성될 때 기본 cpu 개수는 없습니다. 파드의 cpu 리소스는 명시적으로 지정하지 않으면 제한 없이 사용할 수 있고 해당 파드의 경우 cpu 제한이 없고 쓰레드를 여러개 사용(멀티스레딩)하는 로직이 있어서 여러 코어를 사용할 수 있었습니다.
추가로 kubernetes top pods 명령어로 쿠버네티스 클러스터에서 실행중인 파드의 cpu를 확인할때 노출되는 cpu(cores)는 millicores 단위입니다.
아래의 이미지에서 1989m 은 1.989 cpu 코어를 사용한다는 의미입니다.

728x90
반응형
'개발 > 리눅스' 카테고리의 다른 글
[Ubuntu] SSH 비밀키 접속 설정 (0) | 2024.12.27 |
---|---|
[Ubuntu] ssh 접속 시도 조회 (0) | 2024.12.27 |
[Ubuntu] MariaDB 설치 (1) | 2024.12.16 |
[Ubuntu] 서버 설정 (0) | 2024.12.16 |
systemd 서비스 status=127 에러 해결 방법: 환경 변수 설정하기 (0) | 2024.11.13 |