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

This page was last edited on 27 June 2021, at 00:23.
< 페미위키:운영팀‎ | 개발팀‎ | 개발 블로그
.
낙엽1124

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

1 문제 기록

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분 - 디스크 입출력 과다

2 각 문제와 원인 및 해결 상태

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

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

2.1 php-fpm, Caddy, MySQL0 - 해결됨

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

2.2 Burst Balance - 해결됨

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

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

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

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

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

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

3 맺음말

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

감사합니다.

4 링크

5 출처