본문 바로가기
이런 이슈 in 개발

[KoNLPy] okt.morphs 사용할 때, GC overhead limit exceeded, hang 등의 에러

by 바람 멘토 2024. 1. 17.
반응형

요점만 간단히!! 😅

 

okt.morphs 사용 시에 다음과 같이 아주 드문 경우로 GC overhead limit exceeded이 발생하거나 hang이 발생할 수 있다.

  • GC overhead limit exceeded
    • 메모리 부족으로 python 내부적으로 gc(garbage collection)을 수행해야 하는데, CPU를 너무 많이(98% 이상) 사용하고 있어서 혹시라도 gc로 메모리를 확보할 수 있는 여지도 만들 수 없는 상황일 때 발생한다😭.
    • 근본적인 원인은 메모리를 점진적으로 갉아 먹는 처리에 있기 때문에, 무엇이 그런지 찾는게 우선이 되겠다👍.
  • hang
    • 상식적으로 무한 루프😱를 생각할 수 있지만, 이 경우에는 논리적인 처리에 그만큼의 시간이 필요하여 오래 걸리는 경우일 가능성이 높다😵.
    • 필자의 경우에는 아주 긴~ 단어로 인해 발생하였는데, 한 단어가 띄어쓰기 없이 7500번 이상 반복된 단어를 처리하면서 발생하였다. 예를 들면, "씁씁씁씁씁....." 뭐 이런 거 🤬.

확인해 본 결과,  okt.morphs에서 한 단어가 2500자 정도로 이루어진 단어에 대해서는 보유한 장비 기준으로 단어당 약 40 초 정도에 처리가 되었지만, 7500자 정도로 구성된 단어에서는 15분이 지나도 처리가 안되었고, 결국 GC overhead limit exceeded가 발생하였다.

 

okt.morphs 실행 전에 띄어쓰기 기준으로 단어 길이 등을 체크하고 진행하여 처리하기 어렵거나 처리할 수 없는 데이터에 대한 고려가 필요하다🙂.

반응형

댓글