반응형
안녕하세요.
오늘 근무 중 oracle 서버의 cpu가 급작스럽게 높아졌습니다.
그래서 cpu를 높게 잡아먹는 프로세스를 확인 후
이 PID를 이용해 쿼리를 역추적 및 판단하에 프로세스를 킬하여 CPU를 낮추려고 했으나
해당 프로세스가 죽지 않아서 톰캣 재기동으로 해결하였습니다.
1. top 명령어로 CPU를 높게 잡고있는 PID를 알아낸다.
top
2. 해당 PID를 이용해 해당 프로세스가 무슨 쿼리를 돌렸는지 아래 쿼리로 확인한다.
SELECT c.sql_fulltext, a.username
FROM v$session a, v$process b, v$sql c
WHERE a.paddr = b.addr
AND a.sql_address = c.address
AND b.spid = #PID#
3. 판단 하에 프로세스를 종료한다.
4. 프로세스 종료가 되지 않아 CPU가 계속 높은 경우 해당 톰캣을 재기동한다.
반응형
'etc' 카테고리의 다른 글
[쿼리 개선] 대량 Insert 시 로직 개선 (0) | 2021.07.27 |
---|---|
[소스 개선] 중복체크 시 로직 변경 (0) | 2021.07.16 |
[오류 해결] Script5009:FormData가 정의되지 않았습니다 (0) | 2021.06.23 |
[etc] hang? deadlock? (0) | 2021.05.31 |
[가상머신] 윈도우와 복사 붙여넣기 설정 방법 (1) | 2021.05.17 |