4월 23일부터 발생한 간헐적 접속 불가 현상 안내

최근 편집: 2021년 6월 27일 (일) 00:23
.
낙엽1124

요약
서버 소프트웨어 교체 이후인 2021년 4월 23일부터 발생하고 있는 간헐적 접속 불가 현상의 원인을 파악하고 해결하기 위해 노력하여 대부분을 해결했으나, 아직 문제가 남아 있는 상태이며 계속하여 예의주시하고 있습니다.

문제 기록

2021년 4월 23일(한국 시간, 이하 동일)부터 페미위키의 접속이 되지 않거나 속도가 느려지는 현상이 반복적으로 발생하고 있습니다.

  • 4월 23일 16시 40분 경 ~ 17시 5분 경 - php-fpm의 메모리 제한이 낮아서 발생한 문제(이하 "php-fpm")
  • 4월 24일
    • 6시 0분 경 ~ 6시 15분 경 - php-fpm
    • 6시 55분 경 ~ 7시 22분 경 - php-fpm
    • 8시 30분 경 ~ 10시 18분 경 - EBS의 Burst Balance가 고갈됨(이하 "Burst Balance")
  • 4월 25일
    • 2시 55분 경 ~ 3시 35분 경 - php-fpm 해결을 위한 점검
    • 8시 10분 경 ~ 12시 0분 경 - php-fpm
  • 4월 26일 6시 20분 경 ~ 6시 30분 경 - php-fpm
  • 4월 27일
    • 14시 45분 경 ~ 15시 10분 경 - Caddy의 메모리 제한이 낮아서 발생한 문제
    • 20시 0분 경 ~ 20시 15분 경 - php-fpm
  • 4월 28일 13시 42분 경 ~ MySQL의 메모리 제한이 낮아서 발생한 문제(이하 "MySQL0")
  • 5월 3일 1시 5분 경 ~ 1시 35분 경
  • 5월 4일 14시 51분 경 ~ 16시 26분 경 - MySQL가 너무 많은 메모리를 써서 발생한 문제(이하 "MySQL")
  • 5월 5일 6시 30분 경 ~ 6시 45분 경
  • 5월 7일 6시 10분 경 ~ 6시 40분 경
  • 5월 11일
    • 17시 0분 경 ~ 17시 15분 경 - yum-cron이 디스크를 많이 써서 발생한 속도 저하(이하 "yum-cron")
    • 19시 45분 경 ~ 19시 55분 경 - yum-cron
  • 5월 14일 11시 11분 경 ~ 11시 20분 경 - MySQL
  • 5월 15일 5시 55분 경 ~ 6시 15분 경 - yum-cron
  • 5월 16일 3시 47분 경 ~ 4시 5분 경 - yum-cron
  • 5월 17일 9시 0분 경 ~ 9시 30분 경 - yum-cron
  • 5월 18일 10시 5분 경 ~ 10시 35분 경 - yum-cron
  • 5월 18일 23시 55분 경 ~ 19일 1시 경 - yum-cron
  • 5월 19일
    • 12시 01분 경 ~ 12시 30분 경 - yum-cron
    • 1시 5분 경 ~ 1시 25분 경 - 디스크 입출력 과다
  • 6월 11일
  • 6월 12일
  • 6월 13일
  • 6월 14일
  • 6월 19일
  • 6월 20일
    • 12시 경 - 디스크 입출력 과다
    • 21시 경 - 디스크 입출력 과다
  • 6월 24일
    • 9시 40분 경 - 디스크 입출력 과다
    • 15시 15분 경 ~ 15시 35분 경 - 디스크 입출력 과다
  • 6월 26일 11시 56분 - 디스크 입출력 과다

각 문제와 원인 및 해결 상태

가장 큰 원인은 페미위키를 구동하기 위해 사용하는 소프트웨어를 Docker Swarm에서 Nomad로 변경한 것입니다. 이 변화는 2019년 11월 제안되어[1] 많은 시행착오와 오랜 준비 기간 끝에 2020년 4월 실행되었습니다.

비록 현재 서비스 중단 등의 문제를 겪고 있지만 그것을 상회할 수 있는 많은 장점이 있어 가능한 유지하고 해결할 수 있도록 노력 중입니다.

php-fpm, Caddy, MySQL0 - 해결됨

Nomad를 통해 각 작업에 설정한 최대 메모리 사용량이 너무 낮아 발생한 문제로, 점진적으로 메모리 설정을 늘려 현재는 같은 문제가 발생하지 않고 있습니다.

Burst Balance - 해결됨

4월 24일[2] 이전까지 페미위키가 사용 중이던 2세대 gp EBS 볼륨은 디스크 입출력에 대한 제한을 두고, 이 제한이 Burst Balance에 의해 유동적으로 관리되는 특징이 있습니다. 4월 24일 이후 사용 중인 3세대 gp 볼륨은 Burst Balance이 아예 없이 입출력 제한이 고정되어 있으므로 같은 문제가 다시 발생할 수 없습니다.

MySQL - 일부 개선되었으며 경과를 보고 있습니다

Nomad에서는 퍼포먼스 향상을 인해 Swap 메모리를 아예 사용하지 않도록 하고 있습니다. 이에 따라 이전보다 MySQL이 쓸 수 있는 메모리가 많이 줄어든 데에 반해 MySQL이 사용할 메모리 설정은 그대로인 상태입니다. MySQL 실행 직후에는 괜찮으나 사용 메모리가 시간이 지남에 따라 점점 증가하여, 60~80시간 정도 흐르면 문제가 생깁니다.

MySQL의 메모리 사용량을 줄이기 위한 설정을 찾고 있으며, [1]에서 진행 상황을 볼 수 있습니다. 현재 꽤 안정된 상태로 일주일 이상 실행에 문제가 없는 것까지는 확인되었습니다.

yum-cron - 원인이 파악되지 않았지만 임시 조치하였습니다

yum-cron은 서버에서 사용하는 소프트웨어들을 업데이트하는 스크립트로, 저희 설정에서는 매 시간마다 한 번씩, 매일 한 번씩 각각 다른 스크립트가 실행됐고, 이것이 실행되는 동안 100%는 아니고 가끔 한 번씩 디스크 입출력이 늘어나면서 MySQL이 하여야 하는 디스크 입출력을 막고, 이에 따라 php-fpm이 제 때 응답하지 못해 페미위키가 느려지는 문제가 발생하였습니다. 문제가 발생하는 빈도가 시간이 지날수록 점점 늘었지만 원인은 아직 파악하지 못하였습니다. 모든 yum-cron을 비활성화하는 임시 조치를 취하였고, 이 스크립트를 재활성화 하는 일은 [2]에서 진행 상황을 볼 수 있습니다.

맺음말

아무쪼록 페미위키가 불안정한 것으로 인해 많은 사용자분들께서 불편과 불안을 겪고 계실 것으로 생각합니다. 비록 즉각적인 해결이 이뤄지지는 못하고 있지만 문제의 원인이 비교적 파악된 상태이며, 몇 문제는 이미 해결되었다는 점을 알려드려 부족하나마 불안을 줄여 드리고 싶었습니다. 남은 문제에 대한 개선을 위해 노력하고 앞으로의 진행 상황도 이 포스트를 계속 업데이트하여 전달할 수 있도록 하겠습니다.

감사합니다.

링크

출처